Thank you all so much for being here. There were so many good talks in this time slot. It's really exciting to see so many people attending mine. This is wonderful. So as Valarie mentioned, my name is Jamie Gaskins. I'm from Baltimore. And so let's go ahead and jump right into it. I'm not sure every time I've done this, rehearsed this talk, it's gone different amounts of time. So we'll see what happens. So first, I'll stop hitting the spacebar that hard. But when we talk about optimization, we need to kind of understand what that means. We need to turn this fuzzy term into something that's a bit more concrete that will allow us to communicate about it better. And so at a high level, optimization is about improving some metric that you've chosen. You've chosen a metric to improve, and you want to move it in some desired direction along some particular axis. And so to improve a metric, we make changes to our system and then measure the effects. In this example, we're optimizing RAM consumption. So we want to move that metric toward zero. We want to take our amount of memory that we're consuming in production and reduce it. The desired direction that I mentioned before is toward zero. Because the less memory that we use in our application, the more we have on tap for spikes in volume. So this is just like, yay, we're just reducing memory, right? This seems so easy, right? Mission accomplished. But is it, are we really done? What other metrics did we look at? Did any of them get worse as we improved this one? Because especially as systems grow in complexity, optimizations might have consequences that are not easy to see and definitely not easy to anticipate. So let's say, for example, that memory consumption was high because we were using in-memory caching instead of a hot code path. So now we're recalculating the same handful of values on each pass through that code. And as a result, instead of our Ruby processes each using a fraction of a CPU core, each one is potentially using the entire core for itself. So some of the things that we're going to go over today are what are metrics? What metrics do we need to think about? How do we communicate about performance? And what are some of these trade-offs that we may be introducing into our code base? So first, some of our metrics that we need to think about are, you may want to optimize RAM consumption for when your production machines are starting to approach 100% RAM usage. App boot time can be problematic if rebooting your production app causes significant delays in processing. Milliseconds per transaction can be important if customers have to wait for that transaction to finish before they can proceed. And when I say transactions, I don't necessarily mean a monetary transaction or a database transaction. It's just a generic term for a unit of work. So this can be a web request, a background job, processing a message that came in over your message queue, anything like that. And transactions per second is an important metric for being able to handle, for being able to track how much you can process at scale. We also have some other metrics that we're not thinking about necessarily consciously, but they're in our minds somehow. And so they are things that we need to think about. And some of these are things like time from feature inception to release is a good measurement for initial deployment of a feature or service. You might call it a greenfield metric. Like once you begin working on a new feature, how long does it take before customers see it? Not necessarily until it's done completely, but before somebody has it in hand. Do you count the amount of time it's at in backlog, inside your task tracking backlog? Why would you or why would you not? These are just things to keep in mind. Time between deploys can be useful to see how granular improvements to an app are over time. Do we need to make a lot of changes to existing code? Before we can deploy this new feature, or can we just add new stuff in? Time from bug discovery to deployment of the bug fix can be useful in understanding the team's firefighting capabilities and the ability to respond to errors that crop up in production. Is it becoming more difficult to fix bugs that we're introducing? That's a metric that we can use. And again, these aren't necessarily things we should be optimizing for, but it might be things we're optimizing for subconsciously. We just need to know that we're doing it. And so our next step here is talking about communicating about performance. Because most of the time when we talk about optimization, we just throw that word around. Just like optimization, two people that are discussing the word performance might be actually talking about different things. So let's break that down a bit. When we talk about performance, we're usually talking about how fast it executes. So when you talk about the speed of anything, you're talking about time. And so discussion of performance typically revolves around one of these concepts. How long it takes to do something once? And how many times you can do that thing in any given time period? And it turns out these can be very different metrics. It's something to think of them as being inversely proportional to each other. And in a lot of simple cases, this very well can be. Because especially in a lot of cases that are easily demo-able, like something that you could do and hack out in a few minutes, they almost always are inversely proportional. But in complex systems, there can be a lot of other factors. For example, if you can parallelize the process, the cost of doing it 10 times might be the same as doing it once. The time cost, that is, might be the same as doing it once. Assuming you haven't reached some sort of CPU or IO limit. If you can cache the result, the cost of doing it 10 times might be anywhere from 1 to 10 times, depending on 1 to 10x, depending on the number of unique inputs to your caching function, how you derive your cache key. For a deep dive on how caching can help or harm your app, definitely want to check out Molly Struvy's talk, right in this exact same spot, just after the break. If your service runs on JRuby or some other Ruby implementation that contains what they call a JIT, Adjust in Time Compiler, the nth iteration of your code might actually be running in a fraction of the time than the first iteration because on the first iteration, the JIT and the code optimizer were cold. They hadn't actually been run on your code yet. On later runs, this is probably not the case, and they may have done some JIT compiling and dead code removal method inlining, things like that, to your code as it runs. Great tools, but they do mean that your code will likely run slower the first time, and that's just something that you need to be aware of, especially while optimizing. And those are a few ways that it can be faster than proportional, but it could also go the other direction. For example, if the first iteration doesn't end up invoking the garbage collector, but subsequent runs do, then you can end up taking longer on subsequent iterations of that code. And that's just when we're talking about CPU time. Once we start adding IO to the mix, we open up a whole new world of variability in optimizing for one or the other because then it becomes even more nebulous. And this, to me, is when things actually get really interesting. This is when it starts getting into that complicated segment. So requests made to remote APIs are subject to the performance of not only the systems that they're talking to, which have their own performance curves to think about, but also the network that you're communicating on. If you're not maintaining persistent connections to those API servers, you may also be subject to things like secondary TCP handshakes, TLS negotiation, and TCP slow start. Other things that slow down your communication. If you're talking to a remote cache, this adds processing time to the initial execution time as we wait for our cache key to be acknowledged by the cache server. So it has a lot of the same considerations of the API because a remote cache is technically an API, but subsequent interactions with the cache can be improved. Talking to the file system can also be slow, especially if we're running on cloud infrastructure where the disk might not actually be on the same machine that your application is running on. We typically think of disk access being instant because the latency between your application and the disk when it's on the same machine is measured in a few microseconds, whereas it might actually be one to three orders of magnitude longer on cloud infrastructure. If your application uses a database of any sort, you may need to take into account the performance characteristics of that database. Some databases optimize for read over write performance. You might have indexes that you need to take into account and how those impact both read and write performance. But how do we distinguish between two concepts, these two concepts here, when we use such a loaded term like performance all the time, saying it's faster if we do it this way. It doesn't actually communicate what you mean. The half of the people that you're talking to will probably choose one definition of one of these two definitions, like how long it takes to run once and one will choose the other, which is how many times it can run in a given time period. So when we discuss how long it takes to do something once, we can use the word latency instead, instead of performance. And when we discuss how many times you can do something in a given time period, we can call that throughput. And this gives us some vocabulary to kind of be more concrete about this nebulous term of performance. And which one of these matters to you is based entirely on your needs at any given time. There are a lot of factors that could make you choose one or the other. If you're concerned about, for example, the volume of data that you have to process versus your capacity to process it, then you might want to focus on throughput and optimize for throughput.  And even then, there can be diminishing returns on that. For example, if you take, if it takes two to 10 milliseconds of additional latency to offload some particular operation to some other machine, that might mean that you take 60 milliseconds instead of 50. But, and if you're looking at raw numbers, like that's a 20% increase in latency. That's gonna seem slow.  And nobody besides a professional StarCraft player is gonna notice that extra 10 milliseconds of latency. So 50 milliseconds, also that 50 milliseconds of CPU time might not seem like a lot, but when you're doing it on the scale of millions of those jobs, that's when it starts to add up. And this is actually the kind of basis of distributed computing where you start delegating tasks off to other machines. And notice I mentioned at any given time, this means that once you've chosen a primary metric that you're concerned about, it's not set in stone. You can't really optimize for one thing at the expense of all else forever. A lot of times it comes down to a matter of scale. And if part of your system that receives the most traffic, like in a lot of applications, this is things like a lot of large systems. This might be your user identity or authentication service, whatever you call it. If that has enough capacity to handle even your largest volume spikes, then you likely wanna prioritize latency over throughput because adding throughput capacity doesn't actually net you any benefit. When that's no longer true because your marketing department has just started crushing it recently, then you may need to start optimizing throughput. And so that's our communicating about performance. The fact that I stumbled through that is hilarious because I'm talking about communication. But that's, so there are a lot of different ways that we can understand communicating about performance. And a lot of that is about removing ambiguity. Because ambiguity, like if you wanna optimize your communication, then removing ambiguity is one of the biggest factors in that. And so next we're gonna talk about trade-offs. And there are a lot of different trade-offs that you can make. You might be trading CPU consumption versus RAM consumption. You might optimize for small data sets or large data sets. You might look at caching versus recalculation, like caching a result versus recalculating it. Latency versus throughput, like we talked about. Readability versus throughput. We're gonna go through that in a little bit. That's gonna be great. Performance under load versus performance at idle because those can be very different. And so the CPU versus RAM thing is a pretty huge deal in data structures and algorithms discussions. If your application's performance depends heavily on a few algorithms that are just used everywhere, then it might be worth looking into whether those algorithms optimize for space or time efficiency, which is really just a fancy way of saying it optimizes for RAM or CPU. Maybe you choose between, for example, one way that you might have to choose between those is maybe if you process a file line by line from disk, this can be slower, depending on a lot of factors. If to process line by line versus read the whole thing in one big blob and then split it on lines. Another possible choice between these two are memory allocation within Ruby itself. So within MRI, masses Ruby interpreter, memory allocation is done by asking the operating system for entire 16 kilobyte pages of memory. And with some exceptions, all of your Ruby objects live within one of these pages. MRI allocates and garbage collects from these pages rather than calling the underlying system calls, known as malloc and free for allocation and freeing up memory. Because those are slow, those are slow to keep calling over and over. And so rather than doing it for each object, what Ruby actually does is it allocates a whole batch of RAM for you and then works within that batch on its own. Because it can optimize that, it can't optimize those malloc and free calls. And that's a trade-off that they've made because even though it ends up using more memory, and a lot of that memory ends up tending to be pretty sparse a lot of the time. And from when you're external to the process looking in, it might look like you're just using gobs of RAM. When really a lot of that RAM is just reserved within your Ruby interpreter. And so that's a trade-off that they've made. Memoization is another big thing that usually this isn't so much of a trade-off, but almost more of a technique to keep from having to recalculate every time. And memoization is just like a fancy term for caching at the object level. So rather than running the same computation, you actually, you run the computation once, store it in an instance variable. Next time you call that method, you just return the instance variable. And that's one technique that you can use. One of our next trade-offs that we're gonna go through is optimizing for small versus large data sets. And this is something that we're all gonna get wrong a million times from now until we retire. So we might use something that scales well for large data sets, but if we're running it on a small data set, it might not perform well. Or we might use something that's optimized for small data sets, but then it doesn't scale well when we have to run it in production against data sets that have millions of elements in them. So these three things are important to keep in mind when working with any amount of data in production. One is that most of your data sets, most of the time, are going to be small, but not all of them. And even some that are small most of the time may not be small all the time. And so we typically might have to do something, we might have to take a graph like this where we're trying to choose between two algorithms based on how they perform at different sizes with different data set sizes. Say one of these two algorithms performs really well with a small data set and one of them performs really well with a large one. And there's a very clear intersection point in there where they cross over. And so you have to think about like do I need to optimize for the small case or the large case? What do I use the most in production? Another question that might come up and should come up in these discussions is why the one that performs poorly with small data sets matters. And in some cases it doesn't matter. But if the large optimized one is used a lot with small data sets, then you can actually impede your performance in production. So which do you end up choosing? Like which one do you want to use? Just use both. So when we look at this at that intersection point, we can see where one outperforms the other and we can, on data sets that are smaller, we can use the blue line. Ones that are larger, we can use the green line that scales better. MRI does this internally in several places. For example, when a hash has three keys or fewer, three keys or fewer, it stores them inside of a flat array instead of storing in them inside this complex data structure that it uses internally for hash, what's the word? Key resolution. To resolve a key into a value. With a sufficiently small hash, it just iterates through until it finds the key. It doesn't actually use the constant time lookup. But once you have more than three keys inside of a hash, it starts to use the more efficient hashing algorithm because iterating through a hash with 150 keys not gonna be as efficient as iterating through a hash with one or two. It also, when you call sort on an array, you might be running one of two different hashing algorithms for that array based on the array's size. Under some threshold, I don't actually remember the threshold, sorry, it'll use a merge sort. Whereas on a larger array, it'll choose to use a quick sort instead. Just because at least in the implementation that exists within MRI, like at those sizes, those particular sorting algorithms typically work better. Big shout out to Vita Hijoshi for walking through the C code in MRI to help me figure that out. So the first time, the next thing, I didn't even put a transition in there. All right, cool. So the next time, the first time you use hashing, it might feel like you found the answer to all of your performance problems. So caching versus recalculation is another big thing that we might wanna optimize for. And so it can feel deceptively powerful when you're caching. Unfortunately caching is not free. There is a trade-off involved in caching. For example, we talked about in-memory caching earlier. The cost for that one is memory. If you don't have the necessary RAM to spare, then in-memory caching maybe isn't the right move. And if you're using remote caching, this one's always fun, remote caching costs a little bit of time. And this is an odd statement because you're probably using caching to eliminate the time cost. But caching is more about mitigating. In fact, all optimizations are about mitigating costs than eliminating them. But caching especially, if your app's network latency to the remote cache is 10 milliseconds and it takes 10 milliseconds to calculate that value, have you saved any time? Fun fact, maybe, maybe you did. It turns out that like, king time to the cache server isn't the only factor in determining this. So the cache server, while under load, might take several milliseconds to return a response, turning that 10 milliseconds into 20, for example, when it would have only cost you 10 milliseconds to calculate from scratch. But it could save your application from spending 10 milliseconds of CPU time, different from wall clock time. I probably should have had distinction in there earlier in the slide deck for that. CPU time versus wall clock time, if you can push off CPU time to something else, like you can eliminate that CPU time cost, it might be worth the wall clock time cost for throughput reasons. So if CPU time is precious in your app, then that might be worth the additional network latency. And so when it comes to caching, like the most cliche joke that we have in software is that there are only two hard problems remaining in computer science, cache invalidation and naming things. And off by one errors. So if invalidating, another fun fact about this is like if invalidating your cache is a matter of determining your cache key, you're actually trying to, these are the same problem, cache invalidation becomes naming things because you have to name that cache key. But no one ever likes that joke. I've told it a million times, no one ever laughs, it's great. I think it's amazing, but I don't know, I always laugh more at my own jokes than anybody else does anyway, so. Thank you for the three people that liked my joke. So adding caching can also add frustration as you figure out how to invalidate your cache because you don't wanna return stale values from the cache. Usually when you try to avoid the stale values, you end up invalidating it too frequently because your cache can't grow forever, you can't just continue shoving data into that cache and expect it to keep making your app fast. So you have to figure out how you're gonna delete keys. And so there are a lot of different caching strategies that your cache server might support. The most common of these is called LRU, least recently used. And yeah, so it's the standard one that comes with that you're probably gonna use if you didn't configure a different caching strategy inside of your cache server. And so the idea behind that is the longer it's been since you last tried to fetch that key, then the more likely it is to be evicted from the cache. And yeah, so there are several other ones that are really useful, another one that's very commonly useful is least frequently used. So like when you start reaching capacity of your cache, that's when these cache invalidation strategies come into play. And so your cache hit rate is another big factor. No matter how good your latency to the server is and how fast your cache responses are, the first time you're making a request to the cache, you're paying both costs, both the request time to the cache server and the calculation time to calculate the value that you then shove into the cache. So when you consider that you're doing this for every single cache key, it gets expensive unless you're returning cached values more than some percentage of the time. With rare exceptions, you might want your cache hit rate to be over 90%. Ideally, it would be over 99%. If your cache rate's below 99%, you may want to see if you're invalidating too much. If your cache hit rate is below 90%, just pull it out, get rid of the cache.  You may think that you're getting fresh data. And so debugging that stuff, that has a cost. And so both the cache hit rate and the, what was the other one? Cache invalidation. Both of those work together, they're just as important together as they are apart. If you have a high hit rate, but you're returning the wrong data, then your cache hit rate is pretty meaningless. If you invalidate too eagerly, it'll reduce your cache hit rate and may cause you to boost up your cache capacity unnecessarily. And so there's usually a lot of tuning involved when you do use caching. So readability versus throughput is another big trade-off that we make. Developer time is not free. In smaller companies, especially early stage startups, time that your developers spend on developing your product might be your most expensive resource. Being able to read and understand that code, especially for debugging purposes, will be much more important, especially in the early days, than how fast it runs. On the flip side, if your app processes such a high volume that a developer spending a week, a week of their time, optimizing something and that gives your company enough of a performance boost that the company generates that and developers entire annual salary and increased revenue. But the code is less readable. That might be a worthwhile trade. For example, abstractions that ActiveRecord provides are awesome, first of all, they're amazing. But it can also generate significant processing overhead, especially on complex join queries. Sometimes you may need to bypass ActiveRecord, just remove it and drop into raw SQL. This can actually open the door to a different style of query, like a comment table expression, which I couldn't possibly think of how to explain in the slide, so I didn't, sorry, but they are a different type of query. But if a join query wasn't the right move, but it was the only approach that ActiveRecord provided, then maybe removing that abstraction can give you some sort of performance boost in that way. Abstractions do have a cost and sometimes while optimizing, you may need to remove the abstractions and start using some of the underlying concepts directly. Again, this is not a knock on ActiveRecord. It's really handy and for queries without joins, the performance overhead is kind of amazing. But just like every other piece of code ever written, especially by me, there are situations where it can get in your way. And so when we look at performance under load versus performance at idle, you definitely want to, when you're doing any sort of benchmarking or performance analysis, you may want to, like you definitely want to run it against the same workload that you're gonna have in production, that you're likely to have in production. Sometimes this means testing performance in production. So because the performance of a piece of code might be awesome when you're running it locally in development, but in production, you might have an entirely different performance profile. So we might end up tuning performance based on how it runs locally. But when we push it up into production, like all of a sudden it's not the same level performance. Anecdotally, at one company where I worked, a CPU bound task that ran in three seconds in development took 20 minutes in production, simply due to the fact that I hadn't considered that it was not the only task running in production. And in fact, it wasn't even the only instance of itself running. So you need to keep your production workload in mind when you're performing any sort of optimizations. And so that runs through our big three concepts that we want, overarching concepts that we wanted to talk about today. So in summary, when you have a complex system, like there are no simple explanations for performance in a complex system. Things you do in one part of your system can affect things that happen in other parts of the system entirely, even if they don't seem related. Not all optimizations are created equal. There's no silver bullet to performance. The answer to every question when it comes to production level performance is it depends, what else are we doing? There's, yeah, so there's no one size fits all solution. And for every optimization, there are scenarios where it doesn't actually make sense to perform certain optimizations. Latency and throughput are separate metrics and it can be important not to conflate them. Caching is somehow both the best optimization ever and also the worst optimization ever. Production workloads are vastly different from what we see in development and we need to keep production workloads in mind. And for all optimizations that we apply, we need to measure, tune and then measure again. We wanna record metrics in production for any optimizations that you wanna apply. If at all possible, do them early before you think you need them so you can have some kind of historical data to go on. You'll probably just wanna throw money at different metrics reporting services like Labrado or New Relic. Get as much data about your app's performance as possible before you start making any sort of decisions about optimization. On that note, that is all I've got. Again, I'm Jamie Gaskins. Please feel free to talk to me about any of the things that you saw today, any other questions or comments that you've got. And I think that's all I've got. Thank you so much, everybody.


So a quick example of flow control inside of a function So I've created a new function here call it flow function and flow funk and I am using a Variable number of arguments by using these ellipses or splat and what I'm going to do say print I can tell you how many arguments you passed. I'm going to use this inbuilt Julia function length again Which is just going to count the number of arguments that are passed and then Remember, this is a new line character and I'm going to have this Variable called I and I'm going to set it I equals one and It doesn't exist outside of my function You remember it's here. It's inside of a function and now I have a for loop inside of a function So I'm going to iterate over all the arguments that I've passed by using this for N in arguments Then I'm going to print a line argument and Then I remember I Is one at the moment and We pass a tab in and remember that is going to go through these arguments one by one and Then a new line and then we're going to Increment I by one so I equals I plus one or short end I plus equals one We're going to end our for loop and then we're going to end our function So you see there's a little bit of a problem here with the indentation Don't indent quite properly in I Julia. It doesn't matter. It will still work So let's run that function. Let's create that function and now let's call it and I'm going to pass All of these arguments again Julia is one in a million two of them are values the rest are strings and Look what it's done So as says I can tell you how many arguments you've passed there was seven and then it's going to run through the for loop so it's going to print argument then I remember I was one and Because it is looping through this end. So the first time it goes through it'll be one So the first argument was Julia now we increment I by one So the next time we run through I is now to so it's going to print argument two to the screen N is now incremented to two. So that'll be the second argument that I passed and so on so quite nice Now though, let's pass some arrays as a function arguments So we've created these functions. We've created these arguments. We've even created the keyword arguments We've created the user use the splat to create an infinite number possible infinite number of arguments But what if I wanted to not pass a single value, but I wanted to pass a whole array So let's create a ray or column vector here by the factor I create this computer variable called x valves and the square brackets indicate the fact that it is an array So it looks like I'm going from negative three to three and I'm incrementing by a half So that's in a ray of values. Let's create there. We are negative three to three Now let's create a function and I'm going to call my function sqr It's going to take a single argument called a and it's going to return a squared And then end so it's a generic function with a single method now Let's map. Let's use the map function. That is one way to use To use a function and then as an argument instead of passing a single value. We pass in whole array. So it's map Then I call my function and I don't use the parentheses and then pass an argument I say comma and then So and then x val so I'm mapping the array to the function and There we go It's going to take every element and it's going to square so three becomes nine Negative three becomes nine and negative two point five becomes six point two five, etc Now I've left this out, but you can certainly do get fly to plot this and you'll see beautifully the x squared pattern that you will see now Let's just have a look at something Map is not always the best thing to do some of the functions leased in In Julia the inbuilt functions. They have their own inbuilt mapping And I'm going to use this macro called at time which will tell me how much time it takes to execute this line of code And how much memory was used so Remember in some older text you will see this using this one dot 10,000 with a square brackets. That's really been deprecated. We we now use in Julia. We use the collect syntax So I'm going to map the sign function and I'm going to do the sign function for values from 1 to 10,000 So the sign of 1 sign of 2 sign of 3 sign of 4 sign of 5 signs it going to go through that 10,000 times let's see what happens that took 0.03 seconds and it used 1.29 megabytes of memory Now let's time it again, but instead of mapping I'm just going to use the inbuilt so sign can map an array to it as part of an Inbuilt ability and look at the difference now It only used 0.009 seconds and only 361 kilobytes a lot less memory and a lot faster and A lot faster than using the map function. So maps not always ideal. We also have this problem When we use arrays now remember the raise the square brackets tuples Assistus list with these parentheses if I have a function it takes two arguments and that it returns three times x plus two times y I cannot call that function h with an array or with a tuple. I'm going to get an error when I do that now one way to get Around it is the apply function But that's been deprecated as well. We now rather use the splat or ellipses So let's create our array three and four and our tuple three and four Let's have that and now create our function h which takes two arguments three times x plus two times y and Instead of just passing that array or tuple as an argument. I use it as a splat So h and array one splat and tuple one splat and you can see what happens It's going to pass three to the x and four to the y So that would be one easy way of passing these Arrays to a function Now except for numbers and characters or other plain data values of arguments are passed by reference only and are not Copied as you can read there They can therefore be altered. So let's have a look at this I'm going to create this computer variable called array underscore primes I'm going to pass it as an array by the square brackets one two three five seven eleven thirteen seventeen and nine and We're going to have an argument as to whether one is a prime number or not. Certainly Julia It's not but we can have that argument elsewhere. So there's my array Nine element array in a single column. They're all 64 bit integers. So let's create this function called add underscore eally add element and I've got a single argument there a and it's going to use the internal The inbuilt Julia function push with this exclamation mark, which means add to the end So it's going to take my argument and it's going to slob on 23 at the end That's what the push exclamation mark will use that term for now push this exclamation mark does So let's run it and we passed to it the array of primes So I'm again passing an array To I'm passing an array to a function and look what happened that 23 was lobbed on at the back And that's permanent because if I call array primes now It's there. It is still there Okay, so for now, we've just passed these normal arguments or keyword arguments or Splat number of arguments, but we can be much more precise in what type of arguments we want to allow We can control that and we call that using type parameters or a parametric method and that is up next


The opportunities from astronomy for growing Australian businesses and developing our national industrial base and capability are almost unlimited. And even meeting the ESO's ongoing needs for new technologies, maintenance and development will generate opportunities for Australian firms to tender competitively for ESO work packages in a wide variety of activities. And that's the other point. In this business, if you want support, build a coalition of the willing.


The Adamawa State Judicial Commission of Inquiring to the Ansar's protest on police brutality has submitted its report. It indicted police over the atrocities committed during the protest. The commission submitted its report of the Chamber of the Government House Yola, the State Capitol. They noted that 13 memoranda with exhibits were received from victims of police brutality. The commission's chairman, Justice Adamu Habon, retired, said the commission received a total of 13 memoranda from the affected individuals, thus together with their documentary evidence. According to him, some of the losses suffered range from mental trauma, physical body pains, loss of property and loss of human lives. It is common knowledge in this country that many times some commissions could not perform well due to sensational reporting by media houses, tending the credibility and character images. In our case, we have not recorded any negative unbalance to reporting or petition from anybody or organization on our activities at the commission. This contributed greatly to our high successes. This report will be studied by government and all the recommendations will be implemented raw. Raw in the sense that we will not amend and we will not tweet any information or recommendation therein that you have submitted in this report. I also believe that all the issues that were raised from the 13 petitions were treated based on merit and so also we are going to treat all the 13 recommendations based on the recommendation and the strength of the submissions.


Hi, I'm Robert Costello. I'm director of Code Positive based in London and we've been specialising in Drupal since 2007 when we were actually founded as one of the first Drupal specialist companies in Europe. So, for the last I think four years I've been organising Drupal sprints in London where we get together for a weekend, we get a venue for the weekend and we invite the community to come in and work face to face on Drupal and that could be anything from codes to designs to documentation, even finding bugs and just sort of testing stuff. Everyone can just come in and make a contribution. We also run a Drupal ladder session Saturday mornings which we get people up to speed with setting up the whole framework for working on Drupal and show them how to actually make contributions, how to navigate Drupal.org to find issues, to make patches, how to do follow up issues, those kind of things. And those have been going quite well. They became very popular when we were trying to get Drupal finished so because we were very lucky to have Alex Potts here in London he was able to come in and we were able to build a table of contributors around him and really kind of push forward in getting Drupal A finished. Now that Drupal A is out of the door they've become slightly smaller but then that's given us an opportunity because the venue is quite large. We've made connections with the WordPress community and then the next one that we're going to have is going to be a general open source sprint which is so far it's going to be a collaboration between the Drupal community and the WordPress community and if any other open source communities want to join they can do that as well. So we have a weekend at a purpose made training place called Happy Computers that has great facilities for working together. We've got that for a whole weekend and that will be the last weekend of April. So I'd like to invite everyone to come along to that and get out to speed. If you've never contributed before we'll completely get you out to speed with that and we'll show you how to do it. If you've contributed before it's a good opportunity to learn from your peers and maybe share some of your knowledge as well and make your contributions to whichever open source project that you're really inspired by.


Good morning everybody, I'm Tommy O'Brien, coming to you live from TFNN headquarters in St. Petersburg, Florida, 10 a.m. Eastern time on Monday morning, 30 minutes into the trading day. We've got a pretty calm market so far. We were in the red, getting a little bit of a pop coming into the opening bell. S&Ps right now, negative by three points, trading at 29.67, you get the Dow now positive by 10, trading at 26,826. NASDAQ negative by just six points, trading at 8,050. Goal contract, positive by six dollars, trading at 14.95. We've got oil pulling back a bit off $1.66 at 5306, and the dollar index up 155 ticks 98,457. Get the bond market closed today for Columbus Day. Jumping over to the indices, we'll start things off, you'll see the low to high. Friday, quite an acceleration from the highs of Friday right towards the end of the day. With the S&P up there above 29.90, you actually make it to a low this morning on renewed fears of a potential collapse of maybe just the details of a potential U.S.-China trade deal. We were down there at about 29.54, just shy of 6 a.m. in the futures market, currently trading 29.67 in the S&Ps. NASDAQ 100, back it up to Friday, we were up there at 79.14 at one point. We trade all the way down to more than 100 points from that level, 78.07 in the NASDAQ 100. We're up about 50 points from that level at 78.56. There's your Dow 30. We'll move this over a bit. You can see the Dow, there we go. Popping on the open, Dow currently trading 26,791. There's your crude oil pullback even last night, 7, 8 p.m. Eastern time, trading to 54.79, crude actually just dipped below $53 for a brief moment, currently trading 53.22. There's your gold contract, 14.95 gold, made it above 1,500 at about 7.30 a.m. this morning and then pulled back a bit and the Euro-US dollar trading at 1.10.22. In terms of news out there, having a lot to do with maybe what's going on with that China deal, as China wants another round of talks before signing phase one of the trade detail, China concerned about the details, the market concerned about the details on that news as well. Stay tuned, folks. Come back at 10 o'clock with Tom. Then we've got Fast Market at 11, Basil Chapman, Steve Rood, Steve White, Tom O'Brien all this afternoon, S&P's negative by three, NASDAQ negative by five, Dow Jones positive by 13. Stay tuned, folks. We'll be right back.


ety and take the precautionary avoidance measures? You're the only one who can protect us from involuntary toxic exposure. Thank you. Thank you That that closes the public comment period of the hearing We'll now turn to the period where the appellant will have five minutes to rebut And just let me note that the appellant can rebut but cannot bring up anything not mentioned by either the public or the opponent during this period Do you understand? You can rebut during this period But you cannot bring up anything that was not mentioned by the public and or the opponent during this period Do you understand? Okay Again, I'd like to thank the city council for the opportunity here tonight for me to speak here at the hearing I'd like to reiterate my argument about the petitions It may concern for me about this project is basically the The devaluation of properties. We are the closest house our houses closest one to the proposed site and the impact is immediate The impact is significant The devaluation house property is real It's manifested in a number of litigations academic research and main media I'm sure a lot of people in this room owns a house This rate of invasion by the wireless industries. I'm not sure what the next victim going to be Who's going to be the next victim by these invasions? I hope the technician count when you understand when you analyze these petitions The other thing is the safety issues Evolved is a very underground. That's why I know I only understand this thing tonight In that area that I said the area is prone to water accumulations Last year I actually said the water level leased the garage door in my house And at that water level the whole thing would be very underwater Last thing on the sea the city would be in liability lawsuits when people got killed because of electrocution coming from the instance And this potential lease cannot be ignored cannot be brushed away cannot be covered by the corporate interest I'm a citizen 10 years ago and I've lived every single time when I become a citizen. I cherish my right Because I like the way I look at it is I'm part of the communities. I like to be involved. I like to contribute I love my life in Santa Cruz Yeah, the last thing I have I work extremely hard As an academic I work all hours The only thing I have the main goal I have is to have a bright future for my kids You want to put in this name the situation like this with these things with the coming bound taking next to my house Who's why who's not what gonna happen? Technology we are not against technologies However, I don't want to sacrifice my quality of life for new technology. We're very comfortable. I've already why we sacrifice What this new thing gonna bring to us? I don't need horizons Why these things impose on me We'll give it the right good. We'll give them the right to impose this thing on top of me on top of my family I don't need that obviously the council consider the petition As the way Because the laws on your side you have the right you have the authority you have to power to deny the application from the applicants Still it's written in the city ordinance You had to write To remove these things from the applications Scientists as I said, I'm not against technologies We should try to find a way to find a solution that's good for everybody To not sacrifice one part of the community for some other things We should make everybody happy. We should make the community harmonious In harmony and people will live happily ever after It's what we're looking for. That's what Seneca is all about Thank you, sir Okay, now we'll turn back to the No, no, that's the closes out the public hearing. We're returning back to the council for deliberation and action. Okay, there's We can ask follow-up questions. We can ask questions, but you did on us. You're you're not mr. I just I just want to make clear that the applicant doesn't have chance to provide rebuttal No, you don't okay, uh, because we have bill hammett from hammett and eddison eddison who can talk about the health effects Which appear to be a very emotional issue, but on that I understand I defer. Thank you for their questions. We're here. Thank you Thank you very much. So now we'll return to the council for deliberation and action Council member math. Yes, I have one. I think probably technical question. Uh, it's been mentioned about, uh, the Storm drain and the water accumulation getting into the vault Disabling it It's gonna have this question. Yeah, whatever. I mean who can speak to that the integrity of the subterranean vault from water Good evening. John Griffiths with crown council and project manager for this, uh, in response for the construction um In regards to a couple items with the vault The vault does have some pumps and it's redundant some pumps within the vault as well as a rock bed drainage underneath when it is Will be installed We've worked with public works in the design And we'll continue to work with them, uh, you know, again With the drainage there and ensure that it doesn't impact negatively to that, um, we have circuit breakers within the vault That obviously if there's any type of water that rises to the point that would touch any electricity, they would automatically trip, um There was also mentioned about the the Hole itself We actually will be replacing the pole with a new pole that will be designed and we'll have structural reports on the pole as well As the foundation based upon our design Ensure that it meets all requirements for the city An answer question Okay, council member crown Um folks have complained about noise and a humming sound. Is that is that gonna be the same thing with this? The only noise that the the vault would generate is cooling fans, which, um Again, we did a study with a vault that's already been installed here in the city Uh, and at 30 feet 35 feet it does meet all noise ordinance compliance for those fans. It's the only active Component in the vault that would make a noise is the fan itself the radios don't make any noise are passive the antenna is passive There's no noise from from the to generate from them And the insurance companies are are you all insured was that uh, is that a true statement? I mean, I there's other people who can speak better to that, but uh, we wouldn't be in business if we couldn't be insured Thank you. Are there any other questions from the council another one council member matthews someone mentioned, um, not understanding the, um Disparity in fill-in of coverage And I didn't fully understand the question, but as I looked at the map. It's that there are a number of transmitters and this Is to deal with one small area And the others deal with the other small areas Correct that I understand that correct each one is is is basically that that chain that was spoken as part of that chain To provide complete coverage and the map you're seeing is the before and after with you know, all the sites working together I don't believe those in I can have more can come back up, but I don't believe the map Actually has it where we've removed one site or another site to see What that change would be I have a question So in regards to like general facilities, do you is by practice do you normally? construct these underground or under what circumstances do you decide because we saw different examples and how I mean Frankly, I mean for a lot of the city you see a lot of old infrastructure that's kind of sitting above ground And what's the practice as far as you know constructing below ground facilities like these? Yeah, vaulting is actually not a common practice It's a fairly new practice and we've worked with the city to come up with a An alternative which is the vault our normal practice would be pole mounted We also do cabinet infrastructure surface mounted cabinets Those are primarily probably 95 of our installations are cabinet or pole mounted the vault is is generally Not used unless You know required due to the fact that Being underground again, you just you'd have more difficulty there's maintenance You know you're they're installed in sidewalks a lot of times in this particular case It isn't but in other cases they are which then blocks the sidewalk if we have to do any maintenance or repairs to it Yeah, and then in regards to the height the antennas They you know based on the height of our light poles. I know they extend beyond that Are you seeing that there's other types of antennas that can be mounted alongside the poles so they don't extend beyond or do they have to be Above the the pole like you've described. They don't have to be above the pole. I know our rf engineering has Will design based upon a height, you know coverage and then sometimes determine the height But we have installed where they're side mounted antennas Visually they're they're not as appealing as that Kind of continuation of the pole versus side mounted square antennas on either side. Okay. Thank you Got some member crown make sure I'm understanding I see two pictures that we have one with a vault above ground and but it's going to be below ground is that The application that came into us included an at grade cabinet that's above ground And they were required by public works to vault it so that it wouldn't cause a sight distance problem for cars Okay, and is there anybody the um They did a bunch of work one of the Miss pierra mentioned They're ripping up this area to put in the vault is is our is the city going to be made whole are we losing anything or Are they destroying any of the landscaping that was put in that island? Yeah, some of the grass will be removed the vaults there's no more grass anyway, but There's just but there's there's trees and rocks and things there won't be any impacts to the trees There's not a tree close enough any um plumbing That's there would have to be replaced or They'd have to work around it. I know the applicant told told us about A study that was done on land values and there's there's no do you know of anything um as far as Uh cell phone towers and in land values the first thing I'd ask that the applicant respond to that the first Study that I saw was the one that was submitted yesterday Thank you, and you all got a copy of that. I think it was dated. Yeah, I don't know if the uh that pellet don't know if the Appellant got a copy Just a couple more questions No, that's it. That's that's what I got that that that covers it I just wanted to know I'd like to see us all get along like the Appellant was talking about and if there is a possibility of moving this or looking at another site I mean obviously people in neighborhood who around that area aren't that happy with it You know he went out and got 43 signatures. Um, I recognize some of the names on the list So I just would uh Wonder if if we could go if the shot clock can be extended be told and um Look for another place to uh to site this this tower where it's not a disturbance in the middle of a neighborhood Councilmember Matthews. Well, I'll bite the bullet I think we all appreciate the sensitivity to unknowns that are out there for all kinds of Products and Forces in the world That are controlled by corporate interests and it's good to have a very healthy skepticism about those things So I I accept that And endorse it. Um, I think the at the introduction here. There was um Very clear case made about what is and is not in our jurisdiction to rule on And um to the extent that facilities meet the FCC Uh standards and are maintained at those standards. Um, as I understand it that is not an area for us to Uh regulate That's correct. Okay uh, we are We do have the authority to real to uh rule on Aesthetics and on where there's proven that there's a credible gap in coverage and where other um Options are not as aesthetic or functional And frankly, I think the case has been made here that there is a gap in coverage I looked at those maps and it was instructed Instructed for me to learn that Poor coverage Doesn't just mean so-so coverage in your home. That's outside and for those of us who have called 911 from our homes The ability to do that inside is a concern So, um I think the idea of Strengthening what's a clear current gap in coverage is In the public interest in the 21st century And the aesthetics Of this of the single pole Without side arms or anything else on what's basically an existing pole location, although it would be replaced is Very benign Really makes No New impact in the aesthetics. So given all of these Factors, I would be prepared to deny the appeal and uphold the planning commission decision I'll go ahead and make that motion make that motion a motion by council member matthews. Is there a second? I'll second. Okay second by council member chase. Is there any further discussion on this item? Yeah, I just wanted to make sure that um council member matthews after our attorney like we we do have the power to um uphold this appeal, right? I mean do it through aesthetics or uh There there's some like our hands are not tied completely No, you have you have the ability to to rule on the appeal Yeah, uh Council member matthews was was inquiring about the FCC um piece and if it complies with FCC standards But you are correct. You have that you still have the regulatory ability to evaluate and rule on the appeal Well, I I if people want to talk about nimby ism I mean, I don't think this is a a typical nimby issue if there is such a typical nimby issue I think most people probably have cell phones who live in that neighborhood Um, if they're not Clamoring to come to us and saying oh my coverage. I mean, I haven't heard that tonight anybody in the neighborhood saying I can't make a phone call It seems to me that we should be listening to the neighborhood the the neighbors and and folks who live there No past And I just don't understand why you know you you remarked correctly I I agree with you that our skepticism for the corporate world Should be on high level and you know the the corporation. This is where it doesn't live here and um Our neighbors do live here and this is why I would um I'm not going to support the uh the the motion because I think that we have not explored all avenues all alternatives um, I don't think there's anything wrong with Tolling the shot clock if that's what the proper vernacular is and Going back and either relocating Looking for another place to put the pole I mean people are coming to us saying that's not the place we want it seems to us like we need to represent The neighborhood I'm not I'm not representing, uh, you know Crown Castle or Verizon or you know, I I'm going to represent the people of Santa Cruz The people of Santa Cruz are coming to us saying no don't do this. This is not a good thing Okay, thank you Is there any further discussion? Okay, we're going to put this to a vote Um all those in favor of the motion on the floor motion by council member matthews second by council member chase Please say aye. Aye Those opposed please say no Okay, that passes with council member, uh, crone, uh, votes and no And uh, council member matthews chase ryan, uh Myself and watkins in favor Thank you party And brown absent council member absent. Thank you. Okay. That was the last item of business the meeting is now adjourned


It was like four o'clock in the morning. My best friend called me and was like, hey Ian, I got some bad news for you. Just wanted to let you know that Cassie died. She killed herself. February 7th, 2021. I was devastated, man. I didn't know what to do. I think it's my turn right now to do something in memory for someone that I just lost. I'm competing in the Far East Bodybuilding Competition. You know, honor my cousin. I just think it's important to do what you can when you can. I think she would be proud of what I'm doing. I'm not here to get first. I'm here to mainly get the word out about suicide awareness. I'm surprised. You're not alone. Reach out to me. Things may seem bleak at times, but you have control over a lot of stuff and I want you to know that you can. I love you. People love you.  We can make a difference together.


Hey friends and happy holidays tonight. I am hanging out at Universal Studios I am so excited the parking is open till 10 o'clock. It is the day after Christmas So we decided I wanted to come out and try to take advantage of all the holiday festivities before they're gone So let's go do this I'm excited to actually hang out here. The temperatures have dropped so Drastically we went from 50s or 60s and 50s down to the 30s. So tonight it's gonna get very cold That also explains my dramatic appearance change. I just want to try to stay as warm as possible So I've got this nice little Halloween Horror Nights hoodie that I've been waiting to wear and I didn't want to wear my Fidora because I don't like the way Fidora's look with hoodies, but I'm feeling comfortable. I'm feeling warm and cozy It has been about a good month and a half every single Saturday Universal Studios has hit capacity Today is Saturday, but the day after Christmas and it hasn't hit capacity yet Still seems a little bit busy, but not anywhere near what we've been seeing every other Saturday As you've seen Despicable Me is about 45 minutes and actually Shrek is at a two-hour wait But that's because they can only seat so many people in the theater at a time And some of the other wait times are just gonna look overall very long But I tell you what when it gets time for night and the temperature drops real low I bet you things are gonna be a walk on it. I guarantee it actually So we're not gonna hop in any lines right now. You're looking at transformers It looks like it's about a little bit an hour and 20 minute wait from this point instead We're gonna get some you're gonna get some food. I'm a little hungry. I Actually wish I brought a pair of gloves today because my hands are actually Very cold some people were smarter than me like Jackie super enthused. Look at you It looks like you're going for a trip to Central Park and now I met up with Jackie We're gonna go get some the need. How do you have finnigans police Navida? This is definitely one of my favorite restaurants at Universal I never get tired of finnigans It's always got something. I haven't tried We're gonna get some live entertainment to looks like they put up some plexiglass So that they can give out more drinks on that side as well. This is one of my favorite places to actually sit and dine Merry Christmas We are definitely gearing up for a very cold night at Universal Why is it that I just get super excited when it's cold out honestly? I love feeling warm but cold at the same time like I like that feeling then being hot so much more In fact the Disney world was this temperature all year round. I probably would love it I know that's like an unpopular opinion, but it's just how I feel I love being cold and I love being bundled up, but not sweating to death. I don't like that at all Starting off the night with a harp and then Jackie got a nice glass of Chardonnay Also, she's getting the beef stew and I am gonna get the beef tenderloin because I seen that it was served with Brussels sprouts and I've been really really craving Brussels sprouts. I love Brussels sprouts. Yeah, they're amazing One of the best things about finnigans is the soda bread that comes with every meal and The knife that holds the soda bread. Look at this Very fancy, right? Yeah, oh Holy moly what did I get myself into because this looks amazing Jackie's beef stew came and I feel like that is the perfect cold night meal right there a nice little stew Yeah, all you need is a fireplace And then the beef tenderloin came out and I am so impressed like I said I was really in the hankering for Brussels sprouts and carrots, but also the onion and potato web on top basically it's fried onions and Fried potatoes kind of mixed together and then the actual filet.  I think I'm gonna try a piece of the filet first Yes Look at this It's cooked perfectly a little bit of filet on the day after Christmas We're both absolutely loving our meals It's like the perfect like cold chilly day meals here Like I love the filet and I love the like the beef tenderloin itself, but that's do like Jackie It's like steaming piping hot. Oh, I was hoping it would be Looks like the live entertainment came back on and it's great that they play some Christmas music or some Irish Christmas music What just plain Irish music is just amazing as well. So we'll take whatever we get And I think I'm gonna call it guys. That was my favorite meal at Universal Studios. I've ever had hands down I absolutely loved it everything. I loved every single thing about it And I think for desserts because it's a cold night a little hot and tasty hot cocoa with rumblemen sounds amazing I'm so excited to try this This is so amazing and I think he's gonna sing some Bing Crosby in a second. It gets me excited. I love Bing Crosby Oh, never mind. We're doing a little Christmas in Kalani I Think we're gonna need to move along even though I can sit in finnigans for probably hours I absolutely love it in there. I love the atmosphere. I love the music, but we got rides to ride I want to go on E.T. And Plus it's getting dark out and all the Christmas lights are turning on even though Christmas was officially over yesterday I just love seeing everything all merry and bright It is simply just put the most wonderful time of the year and I absolutely love it no matter where I'm at If I'm in Pennsylvania, if I'm in Florida, I could be anywhere in the world Christmas time is still the best time Now I think it's time we actually head over to E.T. And luckily we have our express pass with our preferred annual pass because it looks like it's a 45 minute wait I am so happy for this right now Because 45 minutes to ride E.T. I think it's well worth it, but we're gonna jump a big portion of that Oh, it smells amazing in here.  It's one of my favorite rides of all time. I absolutely love it It's a cult. It's an opening day attraction Unbelievable, but we're gonna move along a little bit and I want to show you some of the cool Christmas decorations that Kings Cross because it's Unbelievably magical over there You can actually get a really good view from it right here in Springfield. Look at that. Isn't it beautiful? I absolutely love it. There are two rides actually here for the Simpsons One of them actually meets a little motion sickness and the other one's called the twirl in hurl so we're actually gonna ride the twirl in hurl and shockingly that's not the one that actually gets you motion sickness and Plus I'm a big fan of King and we're gonna be able to see all of King Cross lit up As we actually go up a little bit and spin round and round. You can see this is what we're about to do Kind of like Dumbo or some magic carpets I Have not rolled this ride probably in a good two years tonight seems like a great night to actually take it for a spin You are captives and you waited in a long pouring line Oh boy You must help us attack Springfield I'm actually sliding away We're descending we're descending we're descending No, no, no, we're going down It was so much fun riding the twirl and hurl I definitely haven't done that in a long time and it's amazing all the views that you get of the whole entire park Anyhoo, I think we're gonna move on maybe go to Dagon Alley I wouldn't mind a hot butter beer or a dragon scale. I just like actually just hanging out in Dagon Alley actually Look at this. Isn't it so beautiful? We're gonna actually head on in there But another thing that I want to point out that I never really point out are the Christmas trees because they have one two three four Five of them all on the different balconies here and like I said, I'm not a big fan of just the plain white colored lights I like multi-color, but this literally does just all blend in together perfectly Jackie's trying to prepare. I'm trying to prepare Oh He's sleeping Now it's time to go in now. Here's a really tough question Everyone wants to go in through the brick wall, but have you ever went in through there? I have like it I mean, it's nice, but it's not as cool as this though. I Feel like we're gonna do things on our own here. Yeah, let's see. Is this a better grand reveal? But I like actually Weasley's Because I'm in Dagon Alley and we have the dragon up there and we're gonna definitely wait to get that fire shot I will get myself a dragon scale I absolutely love the beer and Harry Potter and I can't wait to actually enjoy one during the holidays here because It'll be my first Harry Potter themed beer since they actually switched over I missed it. I Missed it. Can you believe it gonna get the camera on in time? Oh, no Ten minutes, I'll wait right here. Thank you Merry Christmas Here is the menu they have of course the butter beer the frozen butter beer the fishy green ale the gilly water And then for the different types of brews We have the wizard brew the dragon scale and then also the fire whiskey get the actual tap handle It's a big dragon I'm gonna take my dragon scale and drink it next to my little scaly friend here That we've been successfully able to have our dragon scale and also catch the dragon breathing fire I think we're gonna move along and maybe go on a high-speed car chase Maybe a little fast and furious Maybe I don't even know if it's open actually because they've been closing it recently But it is the weekend so it should be open This is what I was talking about fast and the furious Looks like we have a couple TM's photo bomb in here You guys seem like the life of the party over here Thank you That's the way party to the left to the left We've never actually been able to come out this side This is like a different area Yeah, look at that. This is so awesome Wait, I'm so confused to where we're even at right now Like we're going in that like a alleyway. I've always went in that way No, that gets locked Because of certain licensing agreement we can't actually film on the ride now We can maybe do a little POV facing us But we can't show any of the rides for fast and the furious, but ride itself is really not that great Oh boy. Are you ready to party?  Yeah, doesn't it? Now that we're done with fast and the furious I want to point out that when we started the night It was 50 degrees now it has dropped down to 41 degrees It's eight o'clock. So I really think by 10 o'clock will be in the 30s. That's insane, right? 33 30th degree weather in Florida. I'm happy. I'm loving it Now we're gonna take a pit stop and to lose maybe grab ourselves an Italian beer I'm happy to come hang on here. I love the way it looks and they have it all decorated for the season. I Was fortunate enough to eat at a lot of these places actually Just a couple days ago I feel like during the Orlando informer because it was all you can eat and drink Throughout the whole entire Universal Studios in Ireland's adventures So I was able to eat at a lot of places that I've never eaten before this being lose I've never actually had their spaghetti and meatballs and their meatballs were actually pretty good Like I didn't think that they were gonna be Amazing, but they were like actually pretty decent and I would have never experienced that along with a whole bunch of other Restaurants, so if you do want to check out that video just look it up. It was it was actually a great night I think I've eaten the most amount of food, but today we're just here to get some good old moretti's They have some decent pizza in here too, but a whole tray is like thirty five dollars You know that seems a little steep especially if you used to buy in the five dollar little Caesar pizza a Nice good break at lose was a fantastic idea now I think we're gonna head to transformers. Hopefully we'll get on and off and time enough that we can watch the cinematic Spectacular, I don't know why and we were actually thinking about going to the exact designated spot to watch it I've never watched it from the exact spot usually I've watched it from the side or from like just an area as I was passing by So tonight would make a good night to do that, but look how beautiful it is out here right now Oh, I'm having so much fun right now. I love seeing all these Christmas lights in here in the music Do you remember earlier when I said we won't be waiting any lines anytime soon? I think it was almost an hour and 20 minutes to get on transformers right now It's a five minute wait and we have expressed so I don't think it matters Let's go get that all spark You're out of line I Just got done just in time that we can like head on over to catch this minute spectacular because it starts at 945 It's 930. It's a lucky us So now we're heading right to Central Park to get like the actual preferred viewing area I'm very excited Yeah, thank you Fun that I'm actually gonna watch this for the first time here when we first came in we actually ran it in But they said it's a splash zone Thank you Just look at how everybody is bundled up. We got blankets. We got hoodies. We got jackets Scarves gloves. This is a once a year kind of thing. You will not see people bundled up like this again until next year Probably now on a cold night. We did not want to be sitting down there. I wonder if those people know You're gonna get wet And now as our day comes to an end We gather to relive these incredible moments in our cinematic celebration Watching the show to just go over the central park usually I catch it as I'm walking about the park But seeing it as it's like supposed to be the way that they layer it it was actually a really good show But I think that's gonna do it for me tonight. I had so much fun just hanging out here It got so cold out the crowds just dismembered like they're all gone. I noticed on the way in Transformers was at almost an hour and 20 minutes wait and then by the end of the night just to walk on like nothing So I hope you enjoyed the video. I enjoyed making it. We'll see you next time


Hi, it's Linda from the Linda Living in China blog. I just finished my first unit of my 120-hour Teffo certificate by ITTT and I must say I really like it. It's not boring material, it's really interesting and it's not too long. Like one unit is not too long at all and what I liked even better I must say was the introductory unit because even after you complete your 120-hour certificate, ITTT is still going to be there for you and they are going to send you job offers, helping you with interview preparation and resume writing. So I really, really like it and I'm looking forward to my unit number two.


just stop just stop and be enveloped in my webs dude this is it this is the unbreakable thread let it play how's it going everybody dot it away here and I am so excited to be back with more Demon Slayer online rate matches because today we are going to be playing the brand new DLC character Rui of course this is the demon from one of the biggest moments in the show and while I do enjoy Akazamor I do have to agree with the popular opinion that Rui is actually pretty good himself but I guess we're gonna see here because our first match is demon be demon I'm just going in now we've locked those we don't want to get by any of the cheap armor stuff I've seen it before look at the rage of these spider webs there oh my god a bit of lag as well that's fine though we got all the spider web in the world I'm just gonna take my two hits and kind of get out of here start zoning double slice let him know well I'm not I'm not letting him get I forgot he had an arm and move I'm not gonna jump out I kind of want to save my L1 abilities for a whoa what are we doing here throwing in a bit of the counter move all right I think I can kind of date you're gonna stand back there all right I missed him I missed him that move is so punishable I do not want to be doing that but I will if tested I'm gonna do it again dude I don't want to do it again cuz it's not smart I'll just get punished I'll do it again all right we're doing yeah you better use your escape move you try to armor oh my god I got him looking goofy oh he thought I was coming in hold on get back down here him with the spider web I'm jumping all over the place let me zone him out real quick just throw so much fire web hold on hold on hold on oh I am nothing if not an idiot how much damage is it's gonna be it hurts put him in the web don't charge me he really if he was charged to be after that I would be done I did it I did it I charged in I went for the grab I knew I knew the risk I knew the risk we're gonna be down to one game and now we've got a comeback to make I knew the risk when I was going in I had to take it though it was too sick to pass out I'm gonna go in he's gonna yep I didn't I didn't I didn't think he'd spend a bar off that I'm gonna oh I got countered that's fine not gonna be a huge combo we do need to start getting some hits in here pretty soon do I wake up oh he went for the ground oh my god he's doing damage hold on put him in a bubble he were you going hold on stay right there while I get over there oh he stayed on the ground for so long what was that hold on nah nah nah that was crazy that was great I don't know what he was going for there all right now we're gonna zone him out I can't believe that hit me I had to escape no no no we got the real webs now oh my goodness why'd you gotta do him like that there was no need put him in the webs oh come on that has to that has to like take more of his guard away dude put him in the webs and I got so much blue left I'm just gonna come on there's no way dude I don't want to have to burst again but I don't want to lose all right that's game that's not game I don't want to burst again if it what if what if what if do I take the wrist does this chip him out I'll just I'll just throw the webs it really got a toxic man this guy is kind of toxic oh he always go all right you're just going for it hey that's fine if you want to go for it I'm not I'm not upset with you in fact I'll just I'll just throw some web up around me it's no big deal I will just run and hide it is nobody get away from me get away from me hold on hey nah I don't play with that I don't play with that oh I thought that wow I wasn't actually scared that was acting man breweries kind of nice I don't want to spend any bar I feel like we can get this win without the meter although I am down bad when it comes to my I should be a punishment I am pretty catastrophically out of meter let me get the spider boy on this guy oh hey we did not have to hit me so hard again not going to spend my stuff I kind of want to keep it he'll do a bit of damage here not worried about it doesn't even have a bar to regen any health I'll just stay in this form I'm a approach oh oh no that's I'm getting punished for that yeah yeah I deserve it I deserve it shouldn't maybe think about jumping out at this point but I'm good honestly oh that's a easy punish he's got to jump out he's got to jump out is he not going to jump out all right we did this just so I could zone him out my goodness just boost and then just get toxic with it why not he's probably going to go armor no armor I'm going to try to parry it ah we can't parry that I'm going to there it is okay we well we knew it was coming we I just thought it would be worth it to go in we're going to let Akka do his thing just get his hits it go ahead let him sauce us up a bit we got all the time in the world counter move nice now this is where I start questioning myself do I do it do I just bet hold on let me wake up let me wake up let me do some damage let me let me let me do some damage before I get ahead of myself here spider I got webbing oh don't try it I'm just gonna zone him out here and now we get all the bar back and more put him in a web that's it he's dead we didn't even do the super we just put him in a web that's all you really need oh my god ah you see this right here did you think you had a chance oh what a pose that was sick dude this character is kind of I see what people are talking about he is very toxic just run away throw some webs get all your resources back throw some webs I could I could really get behind this schedule are we gonna get the rematch though I don't know this isn't a character I think is gonna get a lot of rematches we'll see we actually did get the rematch with one second left on the clock now he does like to start off with the arm removed so we're gonna bait him into it I'm gonna parry it of course easy peasy easy pee I thought that was I got caught running away I thought that was the easiest parry of my life but no we're not gonna get the perfect parry instead Akaz is gonna do Akaza things but then I'm gonna jump in with a bit of spider web I'm gonna let him know he doesn't run the place nah I'm the one that makes the rules around here let me hit him with the spider web just to get the knockdown and I think I'm just gonna wake up put them into oh I missed that is true whoa whoa why are we throwing that move out come on that let's not be childish oh I can't believe that actually hit me all right short combo so I'm not too worried I might start spamming here in a second just to uh all right yeah I'm definitely I'm definitely considering it I'm more than considering it now I feel like I have to okay we're just gonna keep throwing webs again that's it that's game look at these oh my god the webs there okay that time I wanted the region I wanted to get my assist back I wanted all of that I'm just gonna go in this time full send it look at the attack range as well my god these threads are crazy get another bit of knockdown that's fine let's push them off I'm just gonna swing honestly oh I did not mean to jump away that is tragic I'm probably getting punished for that yep yeah yeah I deserved it I was throwing out the guard move did that hit oh I was gonna say I was like no way oh my god the armor but I gotta keep track I gotta I gotta watch out for Akaza when he has those stats that move is so good man it doesn't make it we want to play Akaza are we waking up mashing you just let yourself open you better you better guard next time that happens what are you doing hold on don't run don't run let's not let's not do this okay okay okay you make a very strong point as to why running is fine I understand man you you're right you weren't even running from me probably the sun or something I don't know you got plenty of good reason can we stop you don't have to do this please live live oh we live I'm winning this game I'm literally winning this game it doesn't even matter to me no no this game is over you get to jump away what was the point of getting my two stacks back I'm an idiot I didn't jump away oh man okay mistakes were made mistakes were made but I'm not gonna let that stop me stop that don't even try it grab this man put them up in some webs hold on I'm feeling it now oh where do you go the rage the juggling okay I want to jump away I kind of want to jump away from this grab them again put them up in some webs this is good I'm just going in to grab them again put them up in some webs and now that he's afraid we're gonna dash in back up and throw some spider webs yep that's all you need that's all you need to do get him worried about that grab then bait him out into some spider webs now we got a raw level two for practically anything don't come in on me do do not do it don't do it all the webs actually what I'm a combo the webs into more webs put them in another bowl of webs oh my god that actually combo put them in another bowl of webs that did not combo that's how that works I'm upset we're getting hit by another level one I think so this shouldn't even do that much damage I'm ending this with a super I that that's why I dropped it dude I got a bit too he knows now though he definitely knows I'm trying to hit him with this super but I would never do that I would never do that never in my wild it don't even think about it bro I don't know when to do it though I don't know when to do it oh my god this is nerve racking this is nerve racking I'm an idiot you can't just do a raw you can't just do a raw ah no I'm just trying okay I shouldn't have done it why didn't I just hit him and use it what I'm an idiot I completely forgot about that option why didn't I just hit him and do it ah I was just like well I don't want to grab him and kill him but looking at his health he could have easily take it a grab ah man you are looking at a genuine great a idiot after that start to that beginning oh that's not gonna hit okay web into web what the whoa whoa the forbidden lag technique I've never seen a demon busted out like that wow that was crazy oh my good I am actually so invested in this match now I am crazy invested in this match oh no oh thank goodness I was gonna be so upset I was gonna be crazy upset all right now now he's done now he's I should have practiced this just stop just stop and be enveloped in my webs dude this is it this is the unbreakable thread let it play look at that what they did not have to go so hard on these ultimates oh my goodness that was I almost threw the whole game away for that we got one game left in the set oh my god I am sweating but look at this sweet party trick all right we're gonna play actually aggressive here we're gonna try to speedrun this if we get the rematch last one was like a last second rematch did we get another last second rematch the answer was no well while we might not have gotten a rematch we are getting a character rematch oh my god this guy's way more aggressive hold on hold on whoa whoa whoa let me go ahead and put spit some spider web out there he's going for it all with these counters okay I can respect it I can respect it bring you I'm gonna bring you back down to earth though I am gonna have to bring you back down to her hit you oh that was a waste waste of some good blue bar oh nice gonna be a bit of a shorter combo that's fine I'll just take the damage block and punish block and punish hit them up into the air yep bring it back down with some threads I'm seeing no reason to be afraid here we got a good lead I'm gonna let my bar build up maybe even do nothing to get it back quicker ah forget it ah do I want to jump out yeah we jumping out I'll block them and then just bring the web back and combo it into more webs nope that didn't work okay I'm just gonna stand around do nothing so I can get more webs got him just what he thought we were standing around you thought I you thought I was standing around to get my chakra back up and chakra an art of storm sorry I'm used to it the blue bar being chakra I didn't know what else to call it go ahead stand over there do you think no no no no man would you miss that move you feel it it is just unfortunate whatever you missed that move oh wow we actually got the lead there should not have ended that combo as soon as I did oh but his back was turned why you got your back turned against ruin don't do that just get him off me sometimes you gotta sometimes you gotta back him up oh that is that it I'll just put the shield up oh block and punish oh my goodness just it's just such a safe game you can play with this character man it's like you don't have to put yourself open to too many risks I mean you definitely could if you want to what it would oh damn I ain't definitely overextended there what can I say I wanted to grab dude all right let me wake up let me swing on him let me swing on him you know I had to don't run don't run away I'm not letting you run back to the ground send him to the corner that third one's never gonna connect I just got to accept that if he thinks he's dodging all of this he is wrong look at the wow oh my toxicity oh my toxicity that was toxic as well you did not need that oh my god I'm just gonna burst what hold on why would I not just burst and spam why why would I not why would I not just to end the game a little quicker oh my goodness these are such these can these can be such a fast game let me get another rematch I'm trying to oh an s-rank let me get another rematch oh come on I'm just starting to get the feel all right we might again we didn't get the rematch with that player but we are going up against Akaz once again that was a nice jump I did not want to say anything because I was worried I would just regret saying something soon enough oh I'm a zone I'm a zone if you push me back I got as I'm back him up go for the back him up go for the shield move if Casey comes in oh it still hits the range is nice back up drop the webs on him that is such a good escape move oh also I forgot to add that out of all the Akaza players we've had faced so far this person does have the most wins so this this might be the most intense set so far which is good because I I got my I'm just only oh I'm only just now getting my full understanding of some webs around him that is such a that shit damn it oh my god he's got to run he's got to run all right I'm saving this so I could just back up drop the webs on him do I get a combo off that I do cheap that is cheap all right see I'm really starting to get the handle of this character now oh my god the things you can do with these characters hey what you standing over there for I'm just gonna throw some more web all right we have to remember that he can use the armor dash if he wants to uh I don't think he's not not a great move to use there oh should have gone with the back step one the back step webs would have been a much better choice it said we're gonna take some hits to the face here this combo should be ending soon so I'm just gonna mash on wake up I got nervous I mean his guard should be getting pretty low but it might not be low anymore I'm not gonna waste my my things getting out of it wow that range is crazy okay escape he's running away he doesn't want to over commit to anything and I can't blame him this is where we're really low here so I'm just gonna end up boosting and surging so that I can spam this out again I'm gonna do it one more time that's good love that and that's still commas from that for oh my good it's it's just not a good look dude it's just not good oh my goodness we even could have like turtled that out with nine seconds left on the clock these are long matches oh my god we should not have done that I'm gonna jump away actually I did it twice I'll do it again I did it twice because I thought he'd run in like oh he did it once I might as well try to get punished but he was patient he played it well let me get up let me get up let me get up quick grab don't let him step away all right put up some some decent damage again we are both demons so we can regen uh if need be but see if he escapes here really oh you want to escape I'm gonna chase you down and wrap you up anyway much even there because I want to hold them just get some chip damage in get a little bit of chip in the chip is always nice oh god I'm looking goofy we're bursting there for sure get the blue bar back up keep them keep them far away oh you can't escape there's no way and that combos nope that is cheap that can't that's that can't be right you can't get hit by that dude not if you don't have your escape oh my god look at this party trick oh my good again the webs are just coming in clutch here we do get the rematch and we are gonna get a chance to run it back this is definitely gonna be the final set of the video but that is okay with me so yeah I would definitely say after playing this character he is probably better than Akaza I still do like Akaza's more aggressive style of gameplay more but I don't know how you can argue with the reach of his attacks the way you can spam abilities and go in and like the range right the range right there dude that what was that I don't know how you I don't know uh I mean don't give me wrong again I'm not like I'm playing the game at the highest level but it just seems like Rui has a few more tools up his kit and some cheap stuff to offer as well I'm a little afraid I try to drop the web on him but he didn't advance again oh that was worth I'll say that that that one felt worth taking the risk on well get off me get a chip damage oh god again that's fine that's fine because we are bursting out of it again that is kind of cheap all right we're gonna stand around do nothing get a bit of bar back just zone him out just zone him out and get his bar down all right now we're gonna try to back off all right he's gonna be very close drop the webs it actually hit but we're not gonna be able to get a combo uh we're we're close to getting a two bar escape but instead we'll just spam it out get a bit of chip I'm gonna chip him away here four seconds left on the clock we're Rui we can literally just say no and we're good we got a time up win haha cheap but these are the strategies you need to think of he's running at me I'm not gonna I'm not gonna stand there let you do that all right he uses a bit of a bar for an escape and he gets away as well again he didn't he didn't go on the offensive the range you can't escape the what what see even he stopped he wasn't ready for that all right we're gonna take a beat down here but we you know we do kind of deserve it it's hard to say we don't deserve a beat down oh do I want to escape here uh I'm good I'm good I'm good I'd rather save it for the step back more damage oh beautiful beautiful love to see that I'm just gonna take the knockdown so I could save some bar nice and then we're gonna lock him down lock him down oh my god that's it that's it come on go go go go go go it's over it's over it's over you can't get it by that move cheap that is cheap you can't get it by that move and now we've got two bars going into what should be the final round I just uh do I escape here now we take this beating let him use his bar we're gonna get up we're gonna get up and be stronger for it okay it's fine that is fine no where are you going we're not gonna let him just run up and do that nah okay this is where we burst this is where we boost and then we're gonna spam everything and then surge this is what we this is what Rui does right here this is the strategy we burst we get him off of us we bop bop bop bop bop bop bop bop bop and then we just chip him in we just chip him in again we let him do what he's gonna do we do this and then we just do what we gotta do actually I think I'm gonna block okay now it's scary now now there's a bit of tension in the air that's the webs right there that's the webs right there that's raw damage I don't know how much that's gonna do I don't think I was still in my burst uh but at least we got it off uh please do a decent bit oh I'll take it I'll definitely take it it's not bad especially when you can just keep him off no no no why are you still guarding I'm jumping away that's punishable oh but look at the clock there's only seven seconds left and with seven seconds left I can just go into my spider web form and never be touched game over cheap you just gotta keep your eyes on the clock dude that is not fun yeah let's play it is fun but oh my goodness last match will he take the rematch nah yeah I kind of felt like he wouldn't have to that but thank you so much for watching this video if you enjoyed it definitely make sure to leave a like and subscribe to the channel if you want to keep up with everything we put out here including more demon slayer videos as more DLC comes out and even just some versus matches here but thank you so much again for watching the video if you enjoyed it you can also check out some of the other videos that should be on your screen right now I have been doubted away and I will see you in the next one


The danger of is Jamaica. Miles Altebridge, Bermuda, Cameron, Mathlyn, Grenada, Tiong Fritt, British Virgin Islands, Kadeem, Chinapu, Trinidad and Tobago, Byron, Walker, Jamaica. Let's go through the field for you. There's Chinapu. He's in lane number seven. Fastest in qualifying at 2168. Then in lane six, Tiong Fritt was in the 100 final, finished six. The British Virgin Islander. In five, the crowd will love this one. They'll cheer him all the way around this half lap event. Cameron Mathlyn, second over 400 meters behind the record run from the Jamaican, Nikoi Bramwell. Miles Altebridge looked really good in qualifying for Bermuda, 2237 to get here. Can he produce another impressive performance? The Jamaican crypto transwinner, Ashane Jervis was the second fastest in qualifying, 21.7 seconds behind Chinapu. He'll feel confident. He can medal here too. Scarlett Charles, Grenada goes in lane number two and on the very inside in lane number one, Charles of Guyana and on the very inside in lane number one, Zion Sambo, fourth in the 100 final, didn't look as good in 200 qualifying. The best part of his race looks to be the first 60 or 70. Yeah, exciting young talent is Sambo getting better. Getting the better of his Kurosawa teammate, DeVint. Final of the on the 17 boys, 200 meters. Kadeem Chinapu told me that he fought in the shape to run 10 four for 100 meters. Got the silver medal there behind the Jamaican Nairon Wade. This is a marvelous opportunity to win gold. He's in seven. There's Byron Walker Jamaica in eight and a personal best in qualifying. Set. Off they go. 200 final on the 17 boys. Mothlin of Grenada got away well. Chinapu is well into his running as well. Sought to his service of Jamaica. Sambo of Kurosawa on the very inside. Sambo of Kurosawa has the lead. Chinapu is coming forward. Sought to his service of Jamaica. Chinapu on the outside strikes the goal. Fret I think got silver ahead of Shane Jervis who looks hurt the Jamaican. But Chinapu the 100 silver medalist has taken the 200 in emphatic fashion. He blew the field away over the last 20 or 30 clocks. 21 78 and celebrates in front of the Trinidad and Tobago fans who have been hearing numbers from day to day for the bronze medalist. Oh no, he's the silver medalist. Shane Jervis somehow he held on to second somehow because he was feeling pain from about 15 meters out. Well, he looked best in qualifying. He looked good in the 100 meters Chinapu justifying his pedigree and coming through 21.78 to win the gold ahead of Jervis and freaks. The champion of the 17 boys 200 meters Fret wins the bronze medal 2218 thought for a second he got not to take silver. 2223 told you Fret was desperate for a medal and the opportunity was there for him to grab it. Well, Shane Jervis this young man wasn't even on his radar a year ago and his coach Michael McIntosh decided to have him train through the summer and here he is with the Carifter silver medal. Fret in fact the only athlete eligible in this field to return next year so he'll be looking to upgrade that and you see Chinapu there already just taking the race out, breaks the stagger early comes off the curve perhaps neck and neck with Sambo then just pulls away coming down the home straight Sambo left in the wake places fourth but there comes young Fret you already see Jervis struggling a little bit in the last few meters of the race basically just holding on an allowing momentum to carry him across the line but it carries him enough for a silver medal it was a dominant performance but in Chinapu of Trinidad and Tobago positive 0.9 meters per second the wind speed 21.78 Shane Jervis of Jamaica courageously holding on for silver 22.16 with Tionger Fret of the British Virgin Islands 22.18 Zion Sambo of Curacao is a double fourth place finisher at the Carifter Games mathlin second in the 400 meters fifth at 200 let's head to Gerard Marcily Ricardo I was fast enough to catch up with Kadeem Kadeem congratulations tell me about that race you were able to run from one of the outside lanes not too much distractions what was it like executing for you well it was brilliant I don't know how I get one of the outside lanes when I went in with the faster times but I didn't study it not going in on them I think winning the gold medal what does that mean to you it means a lot this is what I've been training for to beat them jammy because you're soft oh gosh congratulations to you you are the gold medalist for the boys under 17 well done back to you Ricardo and Terry well I tell you what fear game because the Jamaicans did say yesterday that I don't remember exactly who it was that somebody was soft so that was you and so I guess fear game to Kadeem and well now broadcasting well there you go and yeah terrific performance from him though and by the way he made a point about not understanding why he ended up in lane number 7 based on the latest rules from world athletics lane 7 is not considered one of the preferred lanes and so you'll find that a lot of the fastest qualifiers end up in that lane 7 I'm not a fan of it because I think that