So the title of my talk is Processing Billions of Events in the L-Time Using Twitter Heron. Heron is a new streaming engine that was open sourced by Twitter a couple of months ago. And we have been using Heron for the last two plus years in production within Twitter, and we thought we'll open source it so that the community can benefit it. And I'm going to talk in detail about Heron and how Heron is used within Twitter context to process all those events. So my talk outline will be as follows. First, I'll give you Heron Overview. And I introduce a concept of microstreaming in the context of Heron, how Heron differs from the lot of streaming engines out there in the open source. And I will highlight a couple of problems that we faced in production. So one of them is stragglers. How do you deal with slow machines and variations in machine speed?  And finally, I will give some ideas about if you're interested in contributions. So then followed by I'll do some summarizer conclusions. So why do you do real time? So Twitter is all about real time. And there are several aspects of Twitter which is real time. So the few of them include real time trends. So we continuously keep computing trends and bubble up those emerging trends out of the Twitter feed. Then real time conversation, during sporting events like Super Bowl or even any football game or soccer or Olympics, a lot of the chatter goes on about a particular way of taking a touchdown versus criticizing an umpire call. So those kind of conversation has to be bubbled up as well in real time. Then since our monetization strategy is based on ads, when, as these real time conversations are flowing through those Twitter feed, we need to take advantage of what conversation is relevant to inject the relevant ad to the conversation so that the likelihood of the ad being clicked increases. And finally, we also do real time search, where the tweets that are coming in into the system are indexed very quickly within hundreds of milliseconds so that the results of the search that Twitter.com can be very current. So analyzing all these billions of views in real times is always a challenge for us. And we have been using a previous first generation streaming system called Storm. How many of you know about Storm? So we have been using Storm for a while for the last from 2011 to 2014 or so. And so we ran into a lot of issues when we were running at scale, especially running streaming at a few thousand nodes. It's a big challenge. And so Storm ran into a lot of problems in terms of task isolations, debugging, performance tuning, and they are not able to sustain the GCs. All kind of issues that we have happened, which we summarized in a paper that we published last year in Sigmod, there were totally identified 19 problems. So that's when we decide to go after writing Heron so that we can solve all those problems. So I'm not going to go into details of the Storm problems, but I'm just going to delve into Heron itself. So just to give an idea of the Heron terminologies, a Heron job is called topology. It's essentially like nothing but a DAG. And the DAG consists of vertices and edges. And the vertices represents computation. And edges represents streams of data flowing from one vertex to the other vertex. So there are two different type of vertices. And one of them is called spouts. They represent a source of data for the job. And it can tap into any sources. It could be either a Kafka or a Kestrel, or even a MySQL, Postgres, or even any other data source that you consider as pertinent. For example, if you have a way to tap data from kernel counters, you can even write a spout on your own and deploy the topologies. So the second type of vertices is called bowls. The bowls are essentially your computational elements, where they take the incoming data, process them in a certain way, and emit the outgoing tuples. And some of the examples include filtering, aggregations, joining, as well as some kind of machine learning arbitrary functions like clustering, association rule mining, and all the various stuff. So the Heron topology looks like the follows. As I said, it's a DAG. And you have a couple of spouts in this DAG, which in turn feeds to the next stage bowls. And those bowls process the data and feed to the second stage bowls. To give a concrete example, take the word count topology. And so in this case, we are trying to count a distinct number of words that are occurring in the Twitter stream. So in order to accomplish that, we need a tweet spout. And that tweet spout is essentially tapping into the stream and getting those tweets out. Then we need a part tweet bowl, which takes those raw tweets and breaks them up into distinct words. And finally, you have a word count bowl, which in turn counts the distinct words across the streets. And in the database kernel point of view, we call this as a more of a logical plan. So essentially it describes how the computation and other things look like. But the same thing gets realized in physical plan, but not exactly. It gets realized when it executes in the physical hardware in a different way. The reason why we have to do it differently is because the sheer size of the data that you're processing, you may not be able to process within the context of a single machine or even within the context of a single process. So hence, when the topology runs on a physical machine, you have a lot of instances of each one of those components. So in other words, you have the tweet-spout task, which might need to have 100 instances running to handle the brunt of the Twitter stream. Similarly, the part tweet bowl, if it is taking, the parsing is costing some CPU, it might be having another 200 instances of the part tweet bowl. Similarly, the word count might be doing another 50 instances of that. So those number, what we call is a parallelism for each task, for each vertices. And once the parallelism is identified, which is a part of the tuning phase for a topology, then you launch the topology into the physical cluster. And these individual spout tasks and bold tasks are packaged and run in the single cluster. And we will see more about how it is being packed and run in the later slides. Now one of the issues with this one is when a tweet-spout emits a tuple, where the tuple should end up in the downstream bolt. For example, in this case, the part tweet bolt. So in order to accomplish that, there are a bunch of groupings that we have. And some of them are what we call shuffle grouping, which means the tuple comes out and you can distribute to anybody, which means you randomly pick any downstream bolts and send the tuple. The second one is like a fields grouping where you take one or more fields, hash based on those values, and throw into the appropriate task based on that. And there is another grouping called allgrouping, where you replicate to all the downstream bolts. And finally, there is a global grouping where it sends the entire stream to only one single task. And often in practice, we have seen only a combination of shuffle and fields grouping is what we use. So then coming back to the word count topology example, what groupings that you will introduce. So in this case, you have to introduce a shuffle grouping because when that tweet comes out of the tweet spot, it doesn't matter where it lands up. As long as the tweet gets parsed, it doesn't matter where it lands up, which means the shuffle grouping will be suffice in this case. On the other hand, when you go from a parsed tweet bolt to a word count bolt, you need to send the same word to the same bolt so that the count is accurate. So that's where the fields grouping comes in. So fields grouping directs based on the word to the appropriate task. So with this short terminologies, now we wanted to see why herring. So as I said, the storm was one of the previous systems that we used, and it had a lot of issues in terms of performance predictability. In other words, when multiple topologies were running together, or the fragments of the topologies are mapped into a single machine, one was racing, the other was slowing down, and there was no clear control on how much resources that particular topology is supposed to use, and how to constrain that. And that led to a lot of issues in terms of one topology trampling over the other. That lead to a lot of troubleshooting and pagers that occur like 2 AM, 3 AM. And often during events like Super Bowl and Oscars, where the traffic in Twitter is pretty high, you end up all get enough issues of the trampling. So improved developer productivity. We want to get to a model where the other teams in Twitter, they can write a herring topology or a storm topology, and they should be able to debug themselves. And the storm was very poor in that, especially with respect to the fact that you can't get the logs for a particular process while it's running properly. Then you cannot profile it to identify your performance problems. So those kind of issues were there. And finally, ease of manageability. So storm was what do you call encouraging people to run in their own clusters, which means you have to manage a separate cluster for that, which has its own sort of overhead in terms of having folks maintaining the cluster and making sure that cluster is healthy and all. When there is a big cluster, which is maintained by already a team, and which we call as a compute cluster, which has hundreds of thousands of missions. And why can't you play nice and work with the same cluster in a multi-tenant fashion? So we wanted to make the ease of operations as easy as possible. So some of the design decisions we made upfront was it has to be fully APA compatible with storm because of obvious reasons, because Twitter had made a lot of investments in storm, and all the topologies and all the business logic that has been running for a few years is already returned in storms. All we have to do is if the APA compatibility was possible, then we just have to pull the storm under the rug and put the new Heron. And so any compilation of topology should be without any changes, and they should be launched. So we have to make sure that it works. The second one is we wanted to make sure that we can improve developer productivity by using task isolation and doing containers, because we want to make sure that every task is able to debug and profile and even say that this is the amount of resources that I need for this task, and it doesn't take more than that amount of resources so that we can run in multi-tunnel cluster. And finally, we wanted to use mainstream languages like C++ Java and Python. I don't know how many of you have heard about it, but the storm was returned in a functional language called closure. And the interaction of closure with JVM had its own set of issues in terms of triggering GCs, sustained GCs, all kind of issues were there. We wanted to kind of avoid all of them and stick with the tested and proven languages. So with this thing, first of all, the major addition that we made is we got away from the custom scheduler for Heron. So since Measles has a big community behind it, then Yon has a big community behind it. And similarly, we have managed schedulers like Arora running on top of Measles. Similarly, Marathon running on top of Measles. So we have several schedulers already running and very stable. So we wanted to get away from the scheduler. And all we did in Heron is we just give a mapping to whatever the scheduler that you want to launch the Heron jobs, and you should be able to be ready to go. So Heron job, a real-time job, it looks like a yet another job for a scheduler, except the fact that these are all not terminating jobs. They all be always running until you go and kill it. A streaming job is always running like a service. And only when you kill it, the job kind of leaves its resources back to the scheduler. So then in the case of Heron, you submit a topology to an existing scheduler, and it runs the topology alongside with other critical services in a multi-tenant cluster. So if you zoom in on how a topology architecture looks like, whenever you launch a topology, container zero comes up, and the container zero contains a process called topology master. And the topology master is responsible for managing the entire topology. And then once the topology master comes up, the first order of business is to advertise where other people can find, other fragments of the topology can find it. So it writes what we call the discoverable host and the port into the zookeeper cluster. Then it also identifies how much resources that topology requires. Hey, I need 100 containers, and each container should be of size like 4 to 5 CPUs and also 10 GB per container. And once it determines the resource requirements, it contacts the scheduler, hey, I need this many containers of this much resources. Can you please find them and spawn them? So once the scheduler gets those resources and spawns all of them, so that is where the other containers that you see in the lower part of the slide. So those are all called the data containers, and those containers are spawned by the scheduler. The moment those containers are spawned off, a process called stream manager comes up on those container. The first order of the stream manager is to figure out where my topology master is, where my master is running. So it uses the zookeeper discovery mechanism where the topology master has returned its location and discovers it. And once it discovers, it sends a message to topology master, hey, by the way, I'm off. And once the topology master gets all the stream manager check-in, then it forms what you call as a physical plan. And a physical plan essentially allows you to make the stream managers discover other stream managers in other containers so that the data can be exchanged in a fully connected graph fashion. And so the stream manager, what do you call it? Once they check in with the topology master, topology master forms a physical plan and also writes a copy of the physical plan into the zookeeper cluster. And the reason why we do it is the container zero can fail, because at any given time, it's running in a machine on its own. And it will fail, and the container might be relocated to some other machine by the scheduler itself. So in that case, the topology master has to rediscover where its data containers are and how they are running, whether they're healthy or not. So in order to do that, it has to rediscover its state, the physical plan, and all the various stuff. And so that is why it saves those state information when the topology master, the container zero, dies. So now what happens in the case of container data containers dead? So a scheduler will allocate a new container, and automatically that container's first process will be stream manager. And again, it will try to find its topology master. And since all the stream managers and the containers are assigned unique IDs, the topology master will get this new container reporting that I am the old container, whatever it used to be. And then the topology master, since it has some kind of hotbeats coming from stream manager, it knows that the old container has been dead, the new container has come up, and will reconstitute a new physical plan and send it down again so that the data exchange starts receiving again. So it's built for fault tolerance where container deaths, process deaths, machine deaths, all the things are taken care of without any manual intervention at all. So if you look at how I forgot to mention in the previous slide a couple of other items. So in addition to the stream manager, there are other processes that run on the container. And the actual work is, remember the tweets, pout, and the word count, bold, those processes are run on these instances, called I1, I2, I3 in purple color that you have seen on the slide. That is where the actual bowls and spouts run. And unlike Storm where the spouts and bowls are running on a threaded system, this is a completely a process based system where individual spout task is run on process on its own. And that helped a lot in terms of debugging that process, or doing a heap dump, or even profiling those processes, and having stack trace and all the various cool tools that you can use with it. The second process, the metrics manager, is responsible for collecting all the metrics that's happening, or the number of tuples entering a particular process, the number of tuples exiting a particular process, and how much latency it experience during that execution. All of them are data is collected by the metrics manager, and it goes to an offline system, as well as back to the topology master so that your UI can be served so that people can figure out what are the current number of tuples that has been processed, and any troubles that are occurring, all those stuff. So now, if you look at how the physical execution happens, as you can see, there are four containers for this topology. And each one of them has a stream manager running. And so after the physical plan is shared, they form what do you call some kind of a fully connected graph. So every stream manager is connected to other. There are two sockets that go from each stream manager. One is the control socket, and another one is the data socket, where data is exchanged. I will explain the need for a control socket a little bit later when we deal with stragglers. And as you can see, the instances are the process running in those containers, and the instances connect to the stream manager to send the data. And even if there is a local exchange of data from S1 to B2 on the top left container, you will be bouncing off from the stream manager. That made the architecture simpler and more deterministic. So the topology master, as I said, it's solely responsible for managing the entire topology. And it assigns the role and team and other people who launched it so that we can aggregate capacity based on what team is using, how much capacity for her and jobs, and all the various stuff. Then it also does monitoring, in terms of especially the container health, how the stream managers and all the guys are working or not. Then finally, it also provides metrics, which acts as a serving ground for the UI. Then the stream manager is essentially the heart of the entire processing infrastructure. It has routes to tuples. So whenever a tuple is injected into a stream manager, remember, depending upon the shuffle grouping or depending upon your fields grouping, the tuple has to be routed to the appropriate container and within the container to the appropriate process in the container. So it does all of them. Now, it also manages what he called as a back pressure, especially if one of the guys is going slow, how do you throttle the other guys so that everybody goes at the speed of the same guy, or the slowest guy? So it deals with the back pressure. I think I will describe the back pressure a little bit later. And there is an act management, which is useful for at least one semantics, where when the data entered is guaranteed to be processed at least once. So now the Heron instance and where the actual work is really getting done, which is like it runs only one task, as I mentioned, because for all isolation purposes. Then also exposes the storm API. You can write your own instance if you wanted to write your own API as well. So that way it is very extensible architecture. Then it finally collects all the gathers of metrics and transports to topology master. If you look at Heron instance, there is a couple of threads running within Heron instance. And one is called the gateway thread, which is responsible for dealing with the input-output data from the stream manager. And similarly, gateway thread also deals with the sending metrics to the metrics manager as well that is collected. And the spot logic or the board logic that you wrote will be running on your task execution thread. And the data from the gateway thread is pushed on a queue to the task execution set so that it picks it up. The task execution thread picks it up and runs it. And these quick queues are dynamically adjusted in size to minimize GCs so that we don't keep a lot of objects and keeps hovering around in memory. So with a short introduction to Heron, then how Heron is deployed at Twitter. So we need some bells and whistles in addition to the cool architecture. So we have something called a Heron tracker that tracks all the jobs that are running using Heron. And also we have this Heron web, which is the UI for Heron. Then also the Viz essentially allows you to do an offline analysis of all the metrics that we collect for a particular topology, because if some troubleshooting needs to be occurred, we need to look into those graphs and see what has happened. And so by production, we run it in Meso slash Aurora. And we use a Linux C group container, it's heavily. And that worked out really well. And some of the sample topologies range from very simple to what do you call some complex topologies, as you can see in the graphs. So as you can see, there's some simple topologies which has a four node topologies to something which has 15 nodes. And some of the lower topologies that you see, complex topologies, they are all not handwritten. Instead, it's generated by higher level frameworks. And you can even see some of the topologies where it's a disconnected DAGs. Like there is no connection between them. That could be split up into multiple jobs. But people wanted to manage less number of jobs means then they can write multiple topologies into one single topology as well. So remember I mentioned that the metrics manager collects a lot of metrics. And we have a dashboard that allows us to troubleshoot any topology. And some of the topology dashboard looks like this. I mean, this is just one fraction of the whole dashboard. I can tell you more than 200 metrics are being collected. And all of the you will be scrolling pages and pages before you can figure out what the right metric is. So officially, it has been in production for the last two years. And I can't give out the numbers. But it is processing a large amount of data. And we run Heron on a few thousand nodes on a multi-ton cluster. When I say a few thousand nodes, it doesn't mean that the node is dedicated completely for Heron. But it's like all containerized. And it's running on the Meso slash Aurora, which is the compute, big compute cluster that we have within Twitter. And the equivalent of container, the equivalent of the number of machines that we use is a few thousand. So the Heron use cases within Twitter are divided into seven buckets. So the first is real-time ETL, where extract data, sorry, extract transform on loading of the data. And the real-time BI, where the data is picked up as people are doing an engagement with Twitter, then those data is picked up. And it's broken out into multiple dimensions and aggregated on those dimensions so that you can look at how people are interacting with Twitter at any given time. For example, we have something called real-time active user interactions. And by meaning that, you could see people using Twitter broken down by a region, broken down by a device, and broken down by what operating systems that they are using, all of them in a real-time dashboard, where you can get up to the second kind of view on that. So we also use it for product safety in terms of fraud detections and abuse and tracking all of them. Then we also compute all the real-time trends. Then real-time model building, as well as real-time model enhancement for data mining or machine learning folks. And we also process a lot of images-related features to classify images that has similar features together. And we also use it for real-time ops, in the sense like, since we have a lot of machines, data out of those machines are collected continuously in real-time. And we process those data to identify which machine is going bad or going slow and even do some kind of prediction when that machine has to be replaced at any given time. So there is lots and lots of use cases that we use it for. So now I'm going to go a little bit, zoom in on a couple of issues that are the highlights of Heron itself. And so one of them is what we call the Compromising Heron. So in the current world, a lot of systems are continuously, new systems come into play, and old systems are continuously evolving. For example, in the case of scheduler itself, we have unmanaged scheduler, which is Yon and Mesos, unmanaged schedulers like Aurora, Kubernetes, then Amazon EC2, Docker container servers, then Marathon. And God knows, even HPC community has that one scheduler called Slurm scheduler. So there's a bunch of these schedulers keep coming up and going away. And similarly, state management and synchronization, that can be like ZooKeeper. Or you can even use the local power system if you are riding in a single node. And even Hadoop could be used in some way, some kind of a state manager as well. And when you upload your job, you can upload to even S3 if you are going to execute in an Amazon environment or even Hadoop if it is in a dedicated cluster or even local power system if it is a single node. So we wanted to coexist in this environment where the environment is constantly changing, but the core should keep the same, because the core has been debugged and it's in production. We don't want to keep changing the core, but you should be able to adapt to any environment. So when we said how do we do combine, how do we tackle this problem? So we looked back in the history and we found micro kernels. And I'm sure a lot of people here will know what micro kernels is. One of the inspiration was the mock micro kernel paper. So they went from a monolithic kernels to a micro kernel where they kept only the essential services. And then the rest of the other services became a process on top of these essential services. And that's what we followed in microstreaming, where the basic streaming requirements is an IPC communications. So essentially how to transfer data from between process and how to transfer data across processes in different systems. So that is one of the basic requirements. The second one is a scheduler abstraction where if you want to fit it into any scheduler environment, how do you do it? Similarly, a distributed state management where you have to store the physical plan and all the various other synchronization mechanisms. They are interface for that. So once we have that, then all the process and protocols once it's established, it becomes already compromised. For example, in this case, topology master is a process that deals with the users IPC to interact with stream manager instance and all the various folks. And it also interacts with the scheduler and the state manager whenever it needs to use that services. And similarly, the stream manager also returns us a process. So you can go and replace anything as long as you can, what do you call, satisfies a protocol of transferring data, receiving data, and processing those appropriate control messages. So that's all we need. So this gave a great advantage for us because when we deployed Heron into production within Meso Slasher and when we open sourced a couple of months ago, people ask, can we run in Yon? Can we run it for HPC committee and a Slurm scheduler? Or can we run it on Marathon and a DCOS? So people have been asking all these things and we were able to turn it around quickly within less than two weeks for every scheduler. So now currently it runs on native Mesos as well as Marathon, as well as Slurm, as well as Yon, and of course Mesos and Aurora. And we also have a local scheduler which allows you to bring everything into a single laptop and continuously run it within the local laptop, in a single laptop, so that you can do development and all the various stuff. So quickly we are able to map these schedulers as fast as we can. And similarly, this architecture also allowed to support Python topologies. I mean initially when we started, we were supporting only writing Java topologies. Now we just finished the, you can write the topologies in Python itself because Python is such a nice language for speeding up development. But of course performance will be a little bit slow, but still you can write your topologies in Python and it runs on a native Python interpreter itself. Unlike Storm where it will be going through JVM from JVM, then there is a multi-lang protocol which is essentially spitting it out in JSON that goes into a Python process. No more complexities of that. All we did is that instance, instead of Java instances, you do Python instances. So we wrote the Python instances and when you launch the Python topologies, it knows that it's a Python topology has been launched. It spawns up only the Python instances. So, and there has been already a request for people who want to write in C++ because they want to have legacy code and all the various things and that's in the works as well. So any new lipstick or any new API, you can go and do it very easily. Another project that we are working on is SQL on here and itself. And that also will have its own SQL instances which in turn does all aggregations and other SQL operators that can be efficiently implemented. So this gives, or the whole point is this architecture gives a flexibility to do a lot of plug and play kind of components. So as I said, like the micro steam engine gives you an advantage of plug and play components. As environment changes, code does not change. Then multi-language instances supports multiple language as I said, Python and C++ and multiple processing semantics. So we can even replace a steam manager for high speed. For example, let us say like all seed folks come in and say, I wanted to have even lower latency than what the Heron provides. Yes, we can write a steam manager that can directly work with an infinity band which has a low latency and so we'll be ready to go without having to change any of them at the top. So ease of development because of the fact that it's compromised, multiple teams can work on independent things and it gives a faster development iteration for us as well. So today, the Heron runs within Twitter, contacts local schedulers, this is our development environment and for testing and everything, we use Meso slash Aurora and Zookeeper and HTFS for uploading stuff. Then for production, we use the Aurora scheduler, Zookeeper state manager and Packer, which manages a versioning of all the topologies and all the various stuff and in the open source, it does run on several other schedulers as well. And so I'm going to highlight one production on operations experience, this is called the stragglers and how we deal with it. So stragglers essentially are the norm in a multi-train distributed systems. So there are three primary reasons why stragglers occur. One is a bad host, which is essentially it's not a failed host, it's a bad host in the sense like it is processing slower than what it should be doing. And also the execution skew, in the case of some process hitting a highly popular key and Twitter is known for it, for example, if some popular tweets get retweeted everywhere, then the same tweet will be hit the same process and the sheer size of the data that is getting into the process, the process cannot handle it and that could be the reason for a straggler as well. Then the third reason is you might not have adequately provisioned resources for the job itself. So let us see how we take the approaches to handle stragglers. So there are multiple approaches. One is simply say senders to stragglers. If I am sending a data to a straggler, I can't send as fast as I am getting data, I'll simply drop it. The second strategy is to, hey, like the straggler is not receiving as fast as I'm sending the data, but so I will slow it down so that I can go at the pace of the straggler itself. The third one is how to detect stragglers and reschedule them proactively. So if you look at the drop data strategy, one of the problem is it's unpredictable. I mean, in the whole DAG, in the distributed environment, it's possible that somebody is dropping data somewhere without having visibility, so which means it's affect accuracy quite a bit and there has been instances, this is the data strategy that Storm adopted and they found out that some of the data that we were sharing were 2x, 3x inaccurate. So that was the reason why we did not adopt this strategy itself. So instead, we did a slowdown sender strategy where this one provides predictability because everybody goes at the pace of the straggler and the whole data consumption rate might go down and that in turn translates into a lag in the source itself. So it can process the data at the maximum rate when it recovers and also reduces the recovery times as fast as it can and nicely handles spikes because Twitter is known for spikes, especially during Superbowl and all the various stuff or even during gaming events, whenever a touchdown occurs, you see a 3x, 4x spike which will die down in a couple of seconds. So in the slowdown sender strategy, let us take the example of a topology which is linear in the sense like we have a spout one followed by a bolt B2 and followed by a bolt B3 and it again goes to bolt B4. And so let's take this same, the physical realization of the topology with the containers and all the stream managers connected to each other. Now let us say B2 is a straggler in this case. So the stream manager on that container will detect, hey, by the way, the B2 is going slow. So I need to do something about it. So instead, so what it does is the stream manager sends what you call initiate back pressure message to all broadcast the message to all the stream managers and the stream managers look at in their physical plan whether in the container any spout is running because ultimately the spouts are the gatekeepers of injecting data into the topology. If we can slow down those spouts then automatically the stragglers will be allowed to drain the data in whatever phase that they want. So once a stream manager receives those initiate back pressure message, the spouts are all completely disabled in the sense like no more data is taken by the stream manager from the spout. It's essentially like the stream manager will turn using the lib event loop. All we do is just take the socket out of the spout and then we don't consume. It's automatically the spout slows down. And so then once the back pressure or the straggler is able to process back to its normal rate, then we will send another relief back pressure message to all the stream managers. And automatically, everybody will open up the spouts and start processing again. Now this kind of behavior could lead to what you call initiate back pressure or relieve back pressure, some kind of flip-flop mechanisms. And in order to alleviate that, what we do is stream managers have this notion of buffers. And those buffers essentially have this low watermark as well as high watermark. And whenever you go beyond high watermark, we initiate the back pressure. And when you go below a low watermark, you need to relieve the back pressure. So those buffers essentially act as a cushion. So that's what we did. And in practice, for example, in this case, if one of these containers goes into back pressure, then what happens is you start deviating from in the source when you are reading the data from the source, like either a Kafka queue or a distributed log. Your read will start lagging, and the write will keep going because the data is coming at a faster rate, and you're not able to keep up with the data. And this is what we call as a lag. And this lag is continuously measured for every topology so that you know at any given time, hey, this topology is lagging, which means there is a straggler in that. And so then we can manually restart the container if it needs to be. So there are a couple of things. In most of the scenarios, back pressure recovers in the sense like for doing spikes and everything, it automatically occurs without any manual intervention. But there are cases where there is sustained back pressure because this is because of irrecoverable GC cycles because especially if the topology is riding to some external systems for that output and it leads to some kind of GCs because the external systems are behaving differently. And or, alternately, it could be a faulty host, which is constantly triggering back pressure all the time. And in these cases, we have a scope where you can manually restart a particular container and automatically that container will be restarted and it will start processing. The scheduler will relocate the container and automatically redo all the physical plan and everything and restart it. Then sometimes what happens is people will say that, hey, by the way, I'm lagging so behind. And which means my real-time liveliness of the data is lost. So I will just drop. I don't mind dropping the data and move to the top of the queue. Which means we provide some kind of a sampling mechanisms or a drop mechanism at the spout level. So it constantly measures how far I am lagging. And when there is a lag, boom, it's just apply some what you call some kind of rules and go back to the top of the queue itself. So detecting bad and faulty hosts. I mean, since the bad and faulty host can influence the topology is quite a bit, we often have to proactively keep detecting these hosts. So if you have these large set of hosts, then what we do is like we run another topology that continuously collects data from these machines and looks at how fast that machine is going on, depending upon those metrics that are collected. Then we blacklist into the scheduler saying that, by the way, please take these nodes out of the scheduling conservation for scheduling. So then it automatically will remove it and continues to kind of keep the cluster sane enough. So then finally I'm going to give some performance numbers and OK, finally I'm going to give some performance numbers and everything. So here the Heron, I mean, one of the things that we want to understand is how the resources are being used in this Heron topology. So in this example, we have 60 to 100 million tuples per minute being injected into this topology. And a filtering step occurs within the spot itself, where it filters the 60 to 100 million to 8 to 12 million. And after that there's what you call a blow up operation happens, where each tuple it's split up into 5x number of times into 40 to 60 million tuples that come out of the spot itself. Then we give it to a next stage bolt which aggregates those tuples every one second and outputs to Redis's cache, but 25 to 42 million per minute. And these are the codes that we asked and requested from the scheduler. So for Redis it's a dedicated machine which is 24 codes. And the number of codes actually were used to do 2 to 4. And the memory used was 48 gig. On the other hand, with the Heron which is running on the Aurora cluster, then the codes that we request is 120. But the actual usage, depending upon the traffic, is around 30 to 50 codes. And the memory used is 200. And requested is 200 GB. But actually used is 180. Now where does the codes are being split? I mean used. So as you can see, 85% of the whole codes were given to spouts themselves. And the bolts hardly take 9%. And Heron over it is hardly 7%. And certainly we were surprised to see why spouts are taking so much of the core resources. So when we profiled the spouts, again, this profiling is all possible because of the task isolation or things that we did, we found out that the deserialization cost takes 63% of the whole time. Serialization, deserialization. And the Kafka fetching takes another 25% of the time for the 16% plus 7%. And then some of the other things like parse filter and the user logic takes the remaining amount of time. And so that is the bulk of the, when you profile bolts, the writing data into Redis takes the chunk of the time when you go across the boundaries. But other than that, the rest of them are, again, serialization, which is the dominating cost. So in the overall whole, this thing, you can see 61% of the whole resources are dedicated to fetching data from other systems. And especially deserializing it. And the user logic takes 21%. And the writing data takes 8%. And Heron takes 11%. I mean, there's room to improve the Heron to even make it half of it, like 5% or even like 4%. But the other things have to be improved before we can improve Heron itself. So to give some kind of numbers in terms of throughput and all the various stuff, you can see the real-time active topology, which is one of the close to production topology, where we run some logic to figure out how the users are interacting with Twitter at any given time. And so from this one, we can see that the number of resources consumed is hardly more than 10x. It's like 370 cores in Storm, whereas in Heron, we consumed only 30 or 40 cores, which is 10x reduction in resources. That's a huge deal, especially if you're saving a few hundreds of machines. And similarly, the no acknowledgment case, which is essentially the best effort. Again, the number of cores used is much lower in Heron. And this is with respect to word count topology and the one example that I showed you guys. And this is the worst case for any streaming system, because streaming system is measured in terms of how fast the data movement can be done. And again, we said we can do 10x higher in throughput. And similarly, latency also is much lower. So if you are interested in learning more, we have published three papers. And you can look into that. We have a few more papers that is coming out. Then if we did a tutorial on real-time analytics, that's the 300-plus slides, which has a lot of information about what are the systems out there, and what are the pros and cons, and all of them. So it captures all of them. So then Heron is open source. If you're interested in contributing, please feel free to do it. And you can follow us at Heron Streaming. It's a Twitter account. And you can get the latest updates from there. If you're interested in some contributions, these are active projects that you're interested in. So we are working on auto-scaling. If there is something that you're interested in, reach out to us. And then we are using machine learning to identify the root cost deduction in Heron so that we can effectively troubleshoot them. Then open versus close streaming systems, care all about the latest data. Then sampling and dropping how effectively you can do. Then tuning. Then even C++ topologies.  So that's all I had. If you have any questions? Yeah. Yes? Yes. So that is the scaling of the topology project that I mentioned at the end. So we have already a prototype working where the decisions of changing the parallelism can be done manually and given us a command. What do you call this? Like a Heron submit, where you submit a job. There's a Heron update, where you can update a job with a different number of instances. And so once you have that instances, automatically new containers will be grabbed. And whatever the increase in the parallelism and other things will be scheduled in those containers. And the rest of the physical planning, again, will be rejiggered, then the topology will keep running. Yes? It's possible in just a few more weeks. So yeah. Yes? So a spout is essentially like depends on how you write the spout. You can write any code in your spout by yourself. So within Twitter context, we also maintain the spouts. Because spouts is a very common thing that everybody wants to link with. So we have this distributed log spout, which is essentially our messaging system. Because we don't use Kafka anymore within Twitter. And we used to have a Kafka spout also. Those spouts used to have a lot of logic in terms of whatever you mentioned. Sometimes we have some kind of a little bit queuing and a few things that we can adjust. So that even if we get the data out of them, we can keep the data around within the spout's memory. And we inject the data. For example, some kind of rate limiting that we also can do from a spout to bolt as well. Yes? And we are going to modify the storm Kafka spout to take advantage of some of the stuff that we learned. And we will push those things into the head and rapport as well. So currently we will inform the scheduler team, by the way, these machines are not working very well and all. Then they will blacklist into that scheduler thing. That's where it's going on. But what we wanted to do is we want to get to a fact where the streaming job and it's continuously running, it's able to identify what machine is faulty and automatically switch the container or probably kill the container and move on to the next one. So that we should not get to it. Because by the time the whole manual process takes, it's probably a couple of hours. So which means the real-time liveliness of the data is lost by then. So we wanted to do it automatically by it. Thank you.


My symptoms were shortness of breath and just like the pressure around my chest that I'm assuming what it would feel like if an elephant was sitting on my chest. He was probably about a month away from the end of his life in a chair in the ICU attached to multiple pumps. I have congestive heart failure and so the VAT actually operates as the left side of my heart and does all the work that it's supposed to. Keith today is healthy, fabulous, raising his kids, being a basketball dad. And working. Our ventricular assist device program is a program that actually gives a second chance to patients that have a heart that is just too weak to sustain life. The secret sauce of our success is definitely the team. It's all about the communication that our team does everything from pre-operation to post-operation to discharge and follow-up. All of our VAT patients are rounded on twice a day. The big team is in the morning, which is interdisciplinary, which is everybody that may touch this patient at some point in time in their care in the hospital is present in rounds. The list is big and it's a big team. But the idea is that everybody is listening to the same story and is caring for the patient in the same way. When patients come out of the OR, we've got a defined care plan that we kind of all know about and that we leverage and it's allowing us to get our patients out of the ICU in several days and then out of the hospital in under two weeks on average, which is about half the average length of stay for these patients. For the past four years, we've not had anybody readmitted at the 30-day mark, which is really unusual. We still have not had a death within the first 12 months of VAT implant and current mortality rates are 10%, 15%, 20% depending on which study you look at in that timeline. I think those kinds of things are the things that we're really most proud of. The culture of innovation at Kaiser Permanente is strong and will continue to excel ahead of what is benchmarked in America and set new standards. They do a lot, they sacrifice a lot.  They've extended my life, my kids are very thankful. We always strive to be the best and it's because we want the best for our patients. I mean there's no other profession where you wake up and you have a 100% chance of helping somebody.


Turnback Crime. A global communications platform that gives voice to the Interpol brand. Delivering the first ever global awareness campaign focused on organized crime. The campaign illustrates the shocking cause and effect relationship between buying counterfeit goods and funding crime by showing the end results first. The Turnback Crime message easily translates across borders. In less than 12 months, the campaign penetrated 23 countries on six continents, mobilized national governments and local police, international celebrities, leaders and everyday citizens across the globe, impacting consumer behavior to stop crime at the source. Together, we can Turnback Crime.


Welcome to the tools installation video of the STM32WB getting started series. I'm Joe Tirina and I'll be walking you through the steps to find and install the basic tools needed to start developing on the STM32WB. The STM32WB has a rich ecosystem of software tools and better software and iOS and Android apps. In summary, these are the software tools that we will install. The STM32QMX, which is a graphical configuration tool for generating initialization code for the system and peripherals. The STM32QWB, which is the embedded software package that includes the low-level drivers, middleware, wireless stacks, and application examples for the STM32WB. The QBIDE, which is ST's free IDE tool to develop and debug code. The CUBE programmer is a software tool for programming the WB and allows developers to read, write, and verify the device memory. CUBE Monitor RF offers the ability to monitor and test Bluetooth LE connections on the WB. CUBE Monitor Power is a software tool that is used with the XNUCLEAL LPM01A Power Shieldboard used to measure power consumption of an embedded system. We'll also need a serial terminal, so we'll be installing TerraTerm, but any other terminal software will also work. And last, we'll be showing how to install STBLE sensor in LightBlue Explorer apps on an Android and iOS device. These are needed to connect and interact with the provided WB Bluetooth LE examples. But before we get started, make sure your Windows PC meets the minimum system requirements listed here. It is also recommended to create a my.st.com account to take advantage of the features listed here, although it is not mandatory to download software. You can register for an account from my.st.com. Let's get started by opening a web browser and go into st.com. Then we can search for STM32QBMAX from the search bar. Once on the main STM32QBMAX page, scroll down to find the download button. Go ahead and accept the license agreement and login with your my.st.com account. Then you should see the software download begin. Once the download is complete, go to the directory where it was downloaded and unzip the file. Once unzipped, run the .exe as administrator. Check the box to accept the license agreement and ST privacy in terms of use. This is the directory where the tool will be installed, which I will leave as is to start the installation. The installation is now complete and its icon should be available from the desktop. Now we can install the STM32QBB package, which we will do from STM32QBMAX that we just installed. Click on the install and remove button. Scroll down to find the STM32BB and expand it. Then check the box corresponding to version 1.7, which is the latest at the time of this video recording, and click install now. Once installed, the box will be shaded in green. Now we go back to st.com and search for STM32Q programmer to install it next. Click the get software to download and accept the license agreement. Once the download is complete, go to the directory where it was downloaded and unzip the file. Once unzipped, find the .exe and run as administrator. Accept the license agreement and click next. I'll leave the default installation path. I'll keep the default settings here. Note that the Q programmer installer will also automatically install the STLINK debugger and DFU bootloader driver so you don't have to install these individually. The installation is now complete. Next to install is STM32Q by DE, which we'll search for once again in st.com. Click get software to download and accept the license agreement. Once the download is complete, go to the directory where it was downloaded and unzip the file. Once unzipped, find the .exe and run as administrator. Click next. Leave all the boxes checked to install the drivers for all debugger supported. The installation is now complete. Now, let's install STM32Q monitor RF, so let's search for it. Scroll down and click software to download. Accept the license agreement. Once download is complete, go to the directory where it was downloaded and unzip the file. Once unzipped, find the .exe and run as administrator. OK, as usual, accept the license agreement and click Next. Install. And the installation is now complete. Next on the install list is Qt Monitor Power. So let's go back to st.com and search for Qt Monitor Power to download it. Once downloaded, you'll have to unzip the file as we've been doing with the previous installations. Then run the .exe as administrator to install it. The installation is now complete. We'll also need Terra Term. So from a browser, you can use a search engine, like Google, to search for it. Once found, we can download it. Once downloaded, we can install it, as usual, by running the .exe as administrator. Accept the license agreement and continue clicking Next until complete. It's OK to keep all the default settings in this case. We've now completed installing all basic software tools needed for STM32WB development. And there should be an icon for each of these on your desktop. Last, we will install the STBLE sensor app on your Android or iOS device. So from the Android Play Store or App Store, search for STBLE sensor and tap Install. Once complete, we'll also want to install third-party app, Lightblue Explorer. Once the installation is complete, you can see the app icons on your home screen. This completes the tools installation procedure. You now have all the cube-based tools needed to tackle all your configuration, coding, programming, testing, and measuring needs to start developing on the STM32WB. You're now ready to proceed with the following videos of the STM32WB getting started series and others that make use of these tools. Thank you for watching.


Yeah, good to see you. Thanks for coming in. Thanks, John, and thanks for having me here at the Highland radio station. Tell me about the choir. How did it come about? The choir is an amazing choir. I'll begin by mentioning that. It's amazing with the fact that being the conductor of the choir, you have mentioned that I come from Zimbabwe. Then I went to the Donegal Volunteer Center, where I met the authorities there, John included, and Allison. Then after telling them a little bit about myself, they asked me, what else do you do? I told them, oh, that's a lovely question. Then I will tell you what I do. I do music. They said, what type of music? Then everything, the whole conversation started there. Then I told them, I'm the leader of an acapella group in Zimbabwe.com. It's only men. They sing acapella. It's called Amavevane acapella. So I told them, music is in my blood, and music connects people. That's when they came up with this beautiful idea and asked me if I could be happy to conduct. It was a light bulb moment. Come again? It was a light bulb moment. Yeah, of course, of course. So that's how it started. And then you put out the call to get people to join. Yeah, of course. Then they did all the advertisement. Then people who were willing and who were interested, they came to the choir and we have got about 20 or more than that. So we still, yeah, we are at the grassroot level, but everything is so exciting. Yeah, well, when things are starting up, it is. And you say that already the choir is good. So, you know, in theory, the more members, you know, if you can attract the right people into it to sing, then the better it's going to get. Exactly, I agree with you. But it's not all about quality singers. It's open to anybody that wants to have a go, I take it. Of course, look, we as the choir tutors and choir conductors, it's up to us to make sure we train people to become what we expect them to be. So everybody, people mustn't maybe feel less and say, oh, I don't have the talent to sing. People are welcome to come. Then it's up to future. And of course, I've got a lady called Rita. She's also helping me with everything. Then we're going to get the choir coming up. Trust me. And it's multinational. You've got members from nine different countries and also Irish-born members. How do you keep them all happy with the song choice? How do you choose songs that keeps everybody happy? Or do you just say, this is what we're singing, like it or not? At the moment, I would like to mention this to you, John. The inclusivity, the fact that it's an intercultural thing already, it's a cherry on top. It makes everything look beautiful. And you can imagine learning a beat from each country and taking all those and putting it under one umbrella and making one music. So the fact that I would have to learn something from Poland and somebody from Yemen would have to learn something from Ireland, something like that, then we make one beautiful music. It's so exciting. It takes time, of course, adapting to different languages. But everything is so good. I like it. So you're not seeing it as a problem. This is something to be embraced. It can actually help the choir. Of course. It makes me even myself grow. I like it. OK, good. And already off to a good start, because you've got a couple of big bookings coming up before Christmas. Yeah, I'm told. Yeah. One is for the turning on of the Christmas lights. Yes. And the Kenny at that, which is always well attended, always big crowds for that. Yeah. Cool. And then there's a special Christmas concert as well. Yeah. In Angrena. I'm aware of that as well. Thanks. I can say we are making big preparations for that, yeah. So already you've got, well, in the case of these two, you've got two events to aim towards to practice for. Yes, of course. We are working on that. We have got about three to four songs that we are getting prepared. And I can promise, I mean, all your listeners, John, that should they come there. They will see something different. And they're going to like it. Brilliant. I'm looking forward to it. You've wet my appetite. Just to let people know that if they are interested in joining that, you rehearse two days a week. Yes, we remind her. Yeah, of course. Just to remind everybody who might be interested, we rehearse on Wednesdays. Like you mentioned at the RCC, Regional Cultural Center from 11 o'clock to 1 o'clock, which is only two hours. Then for those who might find it difficult to pitch up during the week, they can try on a Saturday. Yes, on Saturday. But for now, the venue, we have been changing venues, but they can contact the Donegal Volunteer Center. They will be advised on where we're going to be having our Saturday rehearsals. OK. And ideally, you'll be there both days, but if you can't make one and you do make the other, then that's OK too. Yeah, of course, of course. Of course. I mean, considering that the choir is just beginning. It's just at the grassroot level, so we can accommodate all that. And for anybody that might be interested, what will they need in advance? Will they need to have had any singing experience? Will they need to have a certain type of taste in some sort of music? Or just are you open to all new members? That's a beautiful question, John. I've always said in my 20-plus years of music industrial, I've always said most people, it could be when they go for music, it will be the fact that maybe it's a God-given thing. It's a talent. But for other people, they just come, because maybe they love it, but they can't sing. Then it will be the duty of the choir conductors to train them. So to answer you in short, I would say everybody who thinks they love it, let them come. Then Mr. Future is going to take care of them. And can I just ask you, how long have you been in Ireland? It's three months now. Three months. And how's your experience been? I love Leta Kenny. I love Leta Kenny. This is a beautiful place for me. It works well for me. I'm not that type of a person who likes, whether it's so many people. I love a place where it's cool, so I can make music nicely. The music that we do, it's a cool music. It's called tiptoe. Just harmony. Show, show, loza. You hear that? Sounds beautiful. OK, you've got two gigs already lined up. And I'm sure that in the future, there'll be loads more. But it'd be great to get some new members as well. That's currently about 20, you say? Yes. So you're looking to build on that? Yes. And if someone's listening and they're interested, where can they contact the Donegal Volunteer Center or where they'll contact? Of course. I've got my, yeah, of course, especially with regards to the Newland Choir, I will direct them to the Donegal Volunteer Center. They're going to meet a lady called Alcende, a beautiful lady. For those, yeah, of course. For those in the information. Yeah, of course, yeah, they will give them all the information they need. Or just show up at the Regional Cultural Center? Or just show up at the Regional Cultural Center, you know? On Wednesdays, 11 to 1. Yes. And there's also rehearsals on a Saturday, but not too sure exactly where they're going to be yet. 100%. OK. Brilliant. So far, so good. Look forward to hearing you. And maybe you'll come back in, maybe even before Christmas, or maybe even around Christmas. Yes. And do a performance for us. Wouldn't that be nice? I'm not sure. We normally do some sort of a Christmas show. Of course. So maybe there could be a performance. Why not? I'll be happy to bring the Newland Choir here to the studio so we can sing for you. I look forward to it. Thank you, John. Thank you. When it comes to pensions, we all need some guidance in making the right decisions. At John F. Lowery Financial Services, you'll get expert advice on all aspects of pension planning, like how much you should contribute, ensuring you're going into the right contract for your employment circumstances, and claiming the tax relief. Our team of highly qualified advisors have access to all the insurance companies, so we truly can be your one-stop pension provider. To arrange a personal consultation, visit JFL.ie or call 911-24002. John F. Lowery and Associates Limited trading as John F. Lowery Financial Services are regulated by the Central Bank of Ireland. Treat your family or friends to a hamper this Christmas from Kelly's Centre at Letter County. Kelly's have great hampers to suit all budgets, including luxury hampers, available to collect or deliver. Also vouchers for Kelly's award-winning diner or Circle K fuel at the forecourt. Great gift ideas at Kelly Centre, mountaintop Letter County, call 911-2226. You may think you know driving, but you don't know Nissan e-power, an electric motor that brings you the performance and response on the road that you demand, charged by a petrol engine as you drive, the thrill and economy of electric driving without ever having to plug in, and it's exclusive to Nissan. Who said you have to plug in to drive electric? Find the drive you've been looking for with e-power, now available in the new Nissan Qashqai, a unique electrifying experience now unplugged. Nissan, innovation that excites. Is the appearance of your staff important to your business? It's the first point of contact for customers when entering your premises. At CNM and Broijery in Letter County, they have a huge range of clothing, covering all areas of the workplace. It's widely known that customers warm to and trust employees that present themselves well. Have your company name and Broijers are printed on all your work uniforms. Contact CNM and Broijery on 07491 28097 and get your staff looking their best. Would you like to win a Hyundai Kuna car? Well, that's the first prize in the St. Unions GAA Club Development Draw. Your sponsoring this week's Around the Northwest. There are nine other grid prizes and tickets are now available online at stunionsgadraw.com or any club member.


What's up everybody jcm from jazby's case breaks calm this sells out the break guys We're gonna give away the last four spots in the NT football R&B break Which is right here has a lot of these teams tied into it Which is a $250 spot and you're gonna win a spot as far as low as 35 bucks for customers will So then this first guys is first we're running my customer names and teams distribute the hits out of the hangar And then of course no veteran common ship And then we'll come back around my customer names only and the top four names get spots each in the $250 college football NT break high-end teams and Just for selling it out tonight guys. We actually only sold I believe What is it 27 spots? But just for selling it out today, we're gonna randomize the 27 customer names and the top five At the end of the randomizer will win a spot each in this break just for signing out So pretty much giving away Some free spots here just for selling it out tonight. So I appreciate you guys So this guys roller will be for the five-spot giveaway We're gonna paste your names here add it to the five spots And we're animates because we're names and teams do the break first And we'll come back paste your names here, and then we'll see who wins spots in the NT R&B break So let's roll it and we got ourselves a four to five nine times. Good luck top five get free spots here one two three four five six seven eight There you go nine times top five Boom Parker Parker Roger Johnny and Sean Congratulations So there you go.  There's a little character side.  You just got to sell out the straight up spots and the filler Straight up spots and the filler nine times here now guys. Good luck one two three four five six seven Eight, so this is just for the break guys Sean down to Parker nine times. There you go one Not too far away exactly man. Let's keep it going two three four five six seven eight eight nine times Falcons down to the Indianapolis Colts Just a quick glance at what you guys this doesn't in 16. So Eagles are doing pretty big Adam Cowboys would definitely be the biggest Matt Chargers with Joey Bosa There you go. Just thinking what you got guys So let's quickly run the break really quick. We're in Hargreaves, Sue Cravens, Deondre Washington, Christian Hackenberg Alex Collins, Kenneth Dixon They're just purples Scooter to this All right, so there you go. Now, um, I don't think I have a list here. Just because I had to do the randomizer So here we go. Just copy and paste these names here put them here And let's roll the dice full 12 times full 12 times Yeah, we usually get every new release I don't know if that's still scheduled to drop on Wednesday as I haven't heard anything about that Check which are everything but yeah, this is a schedule to drop up. Sure. We'll have that All right, 12 times guys. Good luck one two three four five six seven eight nine 10 11 and 12 I know it still says it's scheduled to drop on Wednesday, but I haven't heard that it was still like really gonna happen I know online is still says that though All right top four get in guys Matt L Parker Mark and Adam Kuperman. There you go 12 times top four get in Congrats guys, you guys got spots in the R&B break So coming up next now is the R&B randomizer for this here and then we can break open NT figure two number nine Appreciate it guys. Jasper's case breaks.com


Welcome to Toffy TV, it is the final word, Everton 2, boom of nil, Everton again, much deserved three points, that's a much deserved, much needed, much needed, but as is feeling slightly under the weather, so at any time he just coughs over, sleeps, just leaves him to it, just leaves him to it, he's even kept you away from the game didn't he, never missed the game and missed the game. Leon Coutch, and Elias Wyne, never ever, ever, listen to pundits. But we did some upmanulated anyway, didn't we? Yeah, didn't even mention, didn't mention the game, finished it, didn't mention Everton again, not before it started he didn't mention anything. So again another reason why you should watch Toffy TV and subscribe to Patreon and get all the insight you need. This video is sponsored by One Football, One Football is that, makes it easy to keep up to the transfer new scores and start in one place to download the one football app, click the link in the description. So boom, if at home, as we said, these games are always, they're always close affairs, they're always nipping, talking, you know, we made a couple of, we made a couple of changes, left luckman in the side from the cup game, broke Coleman back, at right back with Charleston played up front. Obviously Meena went out to Keane, came back into the side, Gomez back into the middle of the park. So, you know, quite strong, quite strong team obviously, what have you done man?  I'd be Coleman, but even Meena, of course, Keane and Meena to be on. But I can kind of understand why he's put James back in for the X-B. And I think he wants to do a bit John Joe's, he doesn't think John Joe's done enough in those two games. Ben, he's not going to stay in, is he? I thought he'd done alright against Leicester for an hour, and I thought he'd done okay last week. Do you think that might be a case of, I know it was John Joe and Luckman last week, but do you think it might be a case of, you know, back to Premier League? You've got a player who's only making the second Premier League start of the season, Luckman. So, having that little bit of experience behind him, just to keep things taking over, or maybe... But I think he's better on the left anyway, than he is on the right, because I think that's the dictator by who is behind him. I think even yesterday when he went out to the left, he looked a lot better because he was flying past him, whereas on the right Coleman doesn't do that anymore. I just don't think Coleman can do that job anymore, and I know we've mentioned this a few times. That's the way it is. People are critical, maybe critical of it, some people might have been critical of it for it. But I mentioned yesterday on my video about, I think Kevin Kilbanard mentioned in a podcast about Chambers Coleman. Number one, again, I believe, I didn't list here, but someone mentioned in the comments that he'd listened to it. And again, this yarn getting spun, that's somehow Erotonians are having a go at Chambers Coleman. Which is just utter nonsense. Erotonians are allowed an opinion about a player. I've heard nobody say anything bad about Chambers Coleman. All right, you get the odd dickhead saying maybe something on Twitter, or the tone of the way they criticise him. But I think most of Ertonians just say, listen, the lad missed the year of his career. And you watch him now, and you can tell that. He's not the same player, and doesn't quite have the confidence of the same player. And as Erotonians, you have to look at that and say, well, if that's the case, we have to start preparing ourselves. And that's all I've heard Blues say. To spin this yarn that's somehow bluesy, I think you said something last week about someone who's writing for Joe. Obviously Joe's an Irish publication. They were saying, or to disgrace, being brilliant for 10 years of heaven. We know he's been brilliant for 10 years of heaven, but that doesn't mean that you can let him not have a conversation, sorry, about his form or what comes next. Ni can't have given himself away though, didn't he? He then went to the Amphilwrap for back to back him up to say, Martin, if you're a fan, I like better off the dead, so I like that or something. Maybe it's the length of the grass? I think it might be. Or maybe it's just not enough death threats when he hasn't played well. That's what, if he was going to the Amphilwrap and living with fans, that's kind of what they're social media do. Don't even a player doesn't have a good game. The thing with James Coleman is, and Kilban had said this in a bit, other people say it about many different footballers, and you know at any level of football you've played. Once you hit a certain age, you're not the same player because physically you can't be the same player. When you've had an injury, a bad injury, of course that's going to shorten that length of time. If you haven't had anyone saying, get it if he's awful because he's not awful, but he's not the same player. Now, what you do, you just put up, not put up with, but you just accept and go, well he's not the same player, it doesn't matter. So we'll just keep him as he is, and we'll lose a bit of what we need to go higher. So if we want to do that, to get James back in as well, because James is a good defender. And Benji. And Benji, get Benji in, because he's absolutely lovely Benji, do you know, F or university or galaxy do you think he should be getting an over Luke Addein at the moment, because he shouldn't be? So just because you know, you're looking at James and going, maybe we need to look at this a little bit differently, maybe we need someone different in front of him, or maybe we need someone different at the right time. That's the way that football moves on. Ac mae Tym awyd yn iawn i gyd yn y rhan o'r eisiau daeth nes ydydd gennym i'r siliad yn dystannu. Taeth, ac mae gyd yn iawn i gyd yn y rhan o'r siliad. Ydw i ddweud y mynd i wneud hyn a rydych chi'n ei bod gan eithaf i chi'n ei righto. Ac mae gennym i'n ganddug yn gyflwyr. Mae'n gwirioneddau yn geydd ymni. Èw'r ddech yn ychwaith o'iを puniwch, ac awddiwch i'w yOTH. Rwy'n rhoi ei wedi gynrystiol a trafiwch i'w ddim yn remindingu i'uch ddulliaeth. Tyíw'r ddech chi'n hyfforddiad a ddim yn ddulliaeth i'w sloedd yn hyfforddiad. Mae efo'n rhes gamma, ac mae rhaid o'n ddechrau sydd wedi cael ei gwrs, ond mae'r ddweud i chi'n gwneud mewn byddai yn dreddig. is that, when he gets that ball he has to remember that he might be able to beat that player in all. The problem is though, though what you've just said though it's not even necessarily mechanically. He might be still able to beat them mechanically. In a foot raze it's there, is now and then it's stopping and going actually can I beat you? You never ever ever hesitate it years ago. You just knocked on it and going if you lost it he'd leave one on the feather there because you knew that at times you won't get beyond them. Yesterday, in the first take, in the first half on our way, I looked at Nathaniel Klein and thought, that's what we need to do. He had a brain yesterday, he had a really good brain. I mean some Liverpool fans saying that shows you why we play a teenager instead of him, he's got it. I thought he was playing yesterday. I was like, for a baron awry, he was going in and he failed. Good tellers. But he hadn't played, funnily enough last time he played was for Liverpool and his Arsenal fans. But what I meant was his ability to just bomb down the line and it's not necessary. No hesitation. That's it. It's not necessarily saying he's better than James Coleman, but there's no thing in his head, there's no thing of, I can't get past this lad or do I or don't I. I think that's what's causing James more problems really than anything else is his indecisiveness. Yeah, I mean we started the game pretty poorly. I mean really, really poorly. We couldn't get out of our own half, we kept on losing the ball, there was no tempo to our play. It was just sloppy or round. It was just, I was looking at him for the first 20 minutes and listen they kept the ball. David winning the ball back really well, high up the pitch and David Brooks was a real, real problem. He looks a real talented player, reminds me of Tim Kale in a way. He's also got a little bit of a swagger about him as well. When he won the foul off Bernard, when he sucked him in with that lovely little, he looked over to the glass. He didn't get this little smile and I thought, I like that, I've got no problem with that. I like someone who knows. I had a problem with him diving in the box. I don't know, I've seen it again. I think we might have just lucky there another day. No, there's a foul first, he grabs gone this year. Yeah, but that's what the referee did. When you've got three deaths in the sylvia, all shame. There was a foul for the kick to have him and you know that. There's no way on earth it wasn't anything but that, but carry on. He played well. He was, he was very good. Yeah, he faded as well first half an hour. He couldn't live with him. He really should have scored. Well, there was spotlight going on it. You looked at that first half an hour and you went, that's what we haven't got. We haven't got a number 10. Because I was looking at cigarettes and the first half was horrendous and I mean horrendous. I think he touched the ball six times. But he doesn't, but he doesn't run around like that. But he played like a sprite striker, didn't he? And looked at him every time he went forward, he went 4-4-2. And every time they were going back, he went into midfield. We started doing that second half and that's what changed the game for me. Which we'll come on to. That's what changed the game, I think. And we were able to talk about that in a bit, but I just thought back. He was excellent. He was excellent. Him and Fraser. Their aggression kept us on the back foot. But again though, it exposed for me the system that we play. And now when it doesn't work, it just doesn't work. And how isolated people, you know, like you centre forward this with Charlotteson. Couldn't get him into the game because he's not that kind of centre forward. He always had his back to the goal as well, which was basically happening the whole game. And that for me exposed that when this system, when players are not confident and when they're not moving the ball fast, how poorly the system works. Because then you centre forward this. Then your wingers feel like they're not taking part in the forward play. And they're picking the ball up in their own half.  And we were really lucky to get through that half an hour. We were, most definitely. I, again, know a point to Guilfee-Sigarton as the problem in this formation. I've said it, I've said it. When he came, dad, he's not a number 10. People tried to tell me differently, but he's not a number 10 in terms of if you want to play this kind of system because he ain't mobile enough. It's a great game. David Brooks highlighted that yesterday. When we played Burnley away, which has been our best performance for a while, he was deeper, Trigarton. That Dominic Alvalu in the front. I think he was well-combined. And dad, he was tight to the forward. So he was involved in the game all the time. He had two more field plays. He would pass the ball and move the ball around. And that's it. When you've got a team like Bournemouth who were pressing and getting it on a pitch quite quickly, Guilfee slows it down a lot in that number 10 position because we said it last week, you've received a ball that is back to goal too much. So it was almost like the centre foot. In fact, you could almost flip him in the challenge. Because the challenge wants to go that way. Where Guilfee's achieving everything and training and I don't think he can pick. The difference in the second half was he got himself alongside the challenge and then at other moments he dropped deep alongside Gomez so the pitch opened up for him. Where he's in the first half, he was just stuck in the middle and he was too slow for the... But don't you think that's the system as well though, the system? But if you've got a quick, if you've got a lad in there, you've got mobility. But what I mean is though is that in the first half I didn't think he was playing anyway. He was just getting stuck, just no way. And you're right, the amount of time Ghana picks up the ball, he's picking up the ball and not doing anything with it because he hasn't got that ability and that's fine. And that's why you look at him and say, Sigurdtson, you should be playing deeper. But then the second half showed that... When he gets it right. When he gets it right and they move him. So that's what I'm saying. Is he actually playing as a number 10 because... I don't know. Second half, he played like a number 10 because he played like a split strike at the second half. When anybody picked it up. The problem you had in the first half was Ghana and Gomez gave the ball away one and anybody carried a point to the other. I agree, I agree. Gomez was playing passes that way in the evening and putting us under pressure.  He was really poor for me yesterday. Got better second half in Ghana. Well, all of us got better. But that's what I'm saying. The shape, the shape. I don't think complimented anyone first. No. Because he just... And don't forget the big thing as well. Whether people like your owner, whether we like your owner's confidence, you could tell there wasn't a grain of confidence in our players. The deck doesn't know it. You know, you look at them and go, why are you so fragile? I know we haven't been playing well but you've got teams come through that. I thought once we got through that period, I think a couple of things... I think we started to go... I think second half, especially. I think we got our foothold into the game first towards the end of the first half. We started making a few more chances. Over of Luchman and Bernard helped. But what helped was, actually not them playing that wide as such, but the times where they come through the middle. And when they almost crossed over, they started getting the ball, they started creating more. You move people around there. The one that I think that illustrated at Montrevent, Luchman came off the left, played the one, two were a digitality. And then got it wide to Coleman. And Chambers, maybe old Chambers, would have had a smash at that. But his cross wasn't... I thought he'd done everything he could. There was a good ball. If he'd cleared the first man, Bernard was in the middle. He might have got the shot. But then even if it had been a good ball, there's no one in the box. Bernard's there. There's only Bernard. There's one person. We had the other one there. Towards the end of the first half, where they came in. It's been Bernard. From the left, and he whipped the right. Well, no, it was two. Wasn't it Luchman? Almost got on one of the far post. And then Luchman put one on Bernard almost. I mean, the first half, and I went, credit to Bournemouth, cos they closed us down. Closed us down. Broke quickly. And we're in our faces. You know, we make a... Dreamer makes a... I've seen people saying he was outstanding. I think you mind when you're at the match, Glydd doesn't follow what's actually going on, cos the first half, he was dreadful. Oh, we were all telling him first half? He was saying he's keen, so I won't keep him in the game here, because he was all up. But one night, I hit the post, it was exactly the same as Spare's. Zoomer deals with it immediately. Oh, I didn't... Right? If he deals with that immediately, there's no danger, but he doesn't trust the wrestlers, if you're a king and the king's too strong for them. He just shoves them off. People weren't so much... They cried screaming for a foul, and it was never a foul. They both... You're right. I mean, he did have all the Zoom's shit, but that's the same with everything. You've got to deal with that straight away. You've got to... Muslim and just... There's an opportunity for him just to kick it out, and he doesn't hesitate, and then he loses the battle is the same. If you look back, I watched the thing he'd be for, because I was thinking, is that the same? And it was the... the sun goal.  And then he'd run in, and it was the same yesterday, when Brooks made a brilliant run. It was a great ball. I thought he was offside at first, but he wasn't. It was a brilliant run. And he... As he knocks it past Pickford, you think, and it's in that, you're in luckily for us. And maybe that was the difference. You've had a little bit of the rubber to give you. And even it's the post and doesn't fall. No, it falls. But we've all read the album with the... I mean, it's full too, it's just the way it got through, but the one where it's Yoshi with King, stabbed in, they're almost went under Pickford. But I think after that, I think after that, we can't declare, because I think I need to help the crowd. Yeah, yeah. I think the second half, you know, the referee had been pouring, second half we came out. And I think, I think two things, I think the conditions started to... It was a little... Well, it wasn't hilarious, but you wouldn't have seen this. But when the rain started coming down towards the end of the first half, it was blowing into the bullens. So everybody in the paddock had to, like, basically evacuate. I wouldn't see that anyway. No, no, no. But everyone had to, like, evacuate out of those seats, everyone was just getting soaked. So everyone, because it was just, like, yeah, because that's so open, isn't it?  So that weather was pouring down. And then, obviously, you mentioned... King of the bar, wasn't he? Yeah, we just did bar. But that weather just started coming down, and I think, with that, and with a little, little, little, little change in our time, I think it gave us more of a photo. He gave them a kick in. He gave them every right to, because we were so lethargic. Getting on muscle. And what made it even worse for me was, we were playing a team, we were on very much a similar run to ourselves, and we were allowing them to boss us. That's five away games on the spin. You know, exactly. I just thought, but we allowed... But sometimes, though, I think, sometimes, when you're on a run like that, as the away team, you've got nothing to lose. You're not the one under pressure. You would be saying, Eddie, I would have been saying to them, the natives of Estlers, glad, you can keep this crowd quite for 15 minutes. The way things are going, you'll get in the bar. It was weird. A commentary team, where I wasn't meeting them. The commentators are quite obviously want a ball to win, and the co-commentators are quite obviously want to have it to win. Carragas sometimes, the card drops, and it was, because he was like, what do you've got with them? He said, we've at one stage. He said, we've about something, someone's pointed it out.  And I know what he is, but it was one of them in the first, it was a terrible game again, of football. Both teams looked, better than us in the first half on all, but definitely both teams, you could tell when fully confident were evident. I think the best thing was, we got in, 0-0, and then obviously the reaction you could tell within a minute of the second half, did up to, there was more energy, the cloud, were feeding off the referee, and that's when Godduson's at its best, is when Desiadir, a note, the tackle, of the referees in absolute caution. He was terrible, he was horrendous. Some of his decisions were just, and I'm glad that they've been picked up as well by people, and I'm glad Silva said something about it as well, because he was horrendous, he was absolutely horrendous. How in this game, how in a game could you end up booking five Everton players, and none of their players?  It was just the day, you could see it, and they were going, oh no booking there, and there's one on Luchman, where Fingy doesn't fair, Gosling doesn't money a kill, he's going to cut, just smashing, the pair of them, he gives you a free kick, and you need to get booked, then yeah, Ghana got booked for winning the book, literally winning the book, it was just, no no, he didn't get booked on the referee, and then Gomez got booked, it was just the day he was like, and he was just, he was poor, I mean, mentioned the Brux one before, that was actually a good decision, it was probably the only decision he made, that was good, because Brux is he's looking to go down the kid, and he's got all the Ghana, and he's going to put his foot through his legs, and actually cat him, and he just throws himself forward, the referee's seeing it, and like I said, soon as, you know what I'm saying, soon as, there's a nap I think, in Carrigan, Robbie off the other cop right there, Robbie was like, nah, was in the penalty like, and you wonder why he went down, cos he seems to be away from him, but he got, I thought Gomez should have been sent off, there's one question about it, three times after he'd been booked, the woman he hits to fell in the face, I mean I'm amazed that he doesn't get done anyway, in the book. I thought that was not on that, nobody raised his arm, no but I think that, with that one now, I think that is, is that the laddie in his arm, or is that his arm in his head, no but, he's got three mighty throes, but he could have been sent off three times, he does cock after the ball and normally you shoot after he can't win. The one way, the one second half way, he dribbles out and then has a chance to put his foot through it and then let him have it and then don't want to catch it, I just couldn't understand, I told him, I would have took him off for myself, cos he just thought he was having one of those games where he was just, he was in a mood, he was getting kicked and the referee wasn't protecting him when he was giving, what was the problem was, when they do something, he'd let play, go on the minute we done exactly same, he was blown up and you could see our players getting frustrated with it and go home in particular, cos Gosling was kept standing on his foot and the other fella was horrible. You know fair play to that, you rough teams up and that's what they did, but what was weird second half was for such a good football damn many times they just hit the ball, it was bizarre, I think it was a total changing the way they played, I couldn't believe it, that was them had to just carry down play, might have had something to do with the conditions though, it was bad, but we went, I don't, we started going a little bit longer second half, even picked up by the community team, it was like why have they changed so much, cos we just kept the ball damn, it was only the last when they, the other time they got the ball out of our box and tried little three balls, that's when he looked dangerous, but I thought personally one of the reasons we got back into the game, or started playing better was because we were going a little bit more direct and the amount of balls that were going up to the charlison, and obviously the charlison had been told, he must have been told second half, stop making life easy for Cuck, because second half I thought it was a big difference where Cuck first half, anything in the air he dealt with it, but second half the charlison had nothing else in his mind but to get in his face, and I was like no, no, but I thought that weight, but I do that weight massively, he started jumping and not, alright, maybe you need a little bit more self-belief, but he stopped Cuck and cleaning others, and cos gilffy had obviously been told again, pushed right up, gilffy started to win the second ball, so rather than the, and also every time I touch the ball it goes five yards, he's got a terrible face touch, and again we kept on jumping on that as well, and I just thought that helped us get back in the game gilffy, you know, people having to go to ref help, but that as well, cos then it looked like, we looked like we were having to go, and we were getting the ball higher up, and where we'd been losing the ball in midfield, we were circumventing that, and getting higher we got, look man had a, he was good yesterday, you know, I think for me now, I want to see him continue in this side for the rest of the season and I think he can only stay in with performance and stuff, but I don't necessarily agree with that though because I really do think that way we are in the league means that, I'm not saying we indulge him, but I just think what's the alternative, okay there is the alternative of being out, he's not though, for me he's kind of, for me, but he's had half of a season pass and he's done nothing with it, so I think now, Luchman has to be given the other half of the season, and there will be times of course there will be times where Luchman will go out for Theo, but I think that role has to be reversed now maybe, man listen, you hear Marco Silva's comments Marco Silva loves him, you see the ability, he loves him, Luchman playing like he did yesterday will be a starter because he put, although he played in patches yesterday you get that from your wings Bernadid Bernadid, but what Luchman showed me yesterday was he's up for the fight now, wearing I think in the first bit of the season he wasn't, he was sulking a little well he was terrible, let's be honest and then he's got better and better and then it was flashes, he was coming off the bench and it was a little cameo of ability and then you get a start like against Newcastle wasn't it and he didn't do anything well there you go, so but he didn't come on to city and he was excellent at Manchester City in that little half an hour and little bits and pieces he started getting on more and more and he's putting it together now he played quite well against Lincoln in patches and he did yesterday his patches got bigger yesterday he got more involved in the defensive side of the game I think the thing with Luchman is and it's the only thing question mark over for me is where is his best position because he's not a it doesn't really matter as such cos we haven't got a striker who wants balls into the box anyway but he's not really a winger because he doesn't really go to the line and cross things, he's more of it getting he's a link player he's number 10 because he can go both ways, he can shoot with both feet he's mobile so you know maybe maybe Guilfee might be looking over his shoulder a little bit but at the moment the way into the team is quite obviously the only thing that when he plays though and this is the difference is that when he plays he can move from the right to the left and then even spend and that's why it works being able to switch with having that little room in the middle of the box now if he'll stick to the right and that's his game and that's where that versatility works is that they can switch it over and give the opposition something else to think about but I do think he can play that number 10 role like a real split striker role and for me I don't think for most of the teams it wouldn't be Guilfee sicker because for me I still think Guilfee sicker is the most is still the best football that we've got in the team for what he does, I just think he needs to play deeper three points this week you can enjoy your week now no stress this week so here's the whole winter it's November two wins two wins out of three in 2019 keep that ratio up I feel alright do you have it? let us know your thoughts in the comments are you happy with the win we haven't really given enough grief but he helped the atmosphere he was horrendous for both teams more so let us know your thoughts in the comments if you haven't subscribed please do so click the bell for a later and join us on facebook as well if you haven't liked us on facebook give us a little like on there as well we'd appreciate that as well share the love thanks for watching, we'll see you later


Let's start this one then. So what is the mass of nitrogen required to occupy three liters at 100 degrees Celsius and 700 millimeters of mercury? So pressure is going to be 700 millimeters of mercury. So does anybody know the conversion factor? That's something you'll be given, 760, yeah. So if you're in process tech, you know, this is something you might want to remember, because that's a common pressure unit, 760, 180. So remember, we want to get it into ATM, right? Volume, it gives us in liters, so we're cool there. What you want to remember is these are the units you want to get it into. If you can't remember them, it's just the R units, OK? N, do we have that? No, that's what we're looking for. In fact, we're looking for N, then M, OK, right? And then T, well, it gives us 100 degrees Celsius. But we add 273 to that, because we're looking for Kelvin, 376 Kelvin, OK? So we got PV equals NRT. We're going to look for N, OK? If you're still like, I don't know what we should be looking for, because it says mass. It's the one that it didn't get, you know? So you've got to know that you've got to use that to get the one that you're looking for, OK? At least get that far, though. You'll probably get some. So let's take that. PV equals NRT. And what are we looking for, N? So isolate N, divide both sides by RT. Cancel, cancel, cancel, cancel. So our new equation is N equals PV over RT. I'm going to erase that part. And do we have all of that? P of, we haven't finished that one yet. So 700 divided by 760, 0.921. So when it's got this decimal point, after those zeros, it means it's 3 sig figs, OK? And the other thing is you never use the sig figs from the conversion factor. So we've got PV now, 0.921, ATM, V, yes, leaders, R, new piece of chalk, sorry guys. Remember, we're doing it this way. T, of course, yes.  So ATM and the numerator and the numerator and the denominator so they cancel, numerator, denominator, cancel, cancel, numerator, numerator, denominator, cancel, cancel. If you're in the denominator of the denominator, that means you go up to the top, OK? So moles goes up to the top.