Hi, my name is Karin Biermeyer. I work at FIMS as division coordinator and my microbiology heroes are the writers. I would like to talk with you about three of them that I appreciate for their work in promoting microbiology. That's a young, of course, you know the book I contain, Multitudes, which made it to every bookstore around, and I think that's a great achievement, but also from Germany, Julia Enders, who teamed up with her sister who did illustrations in her book, teamed up with media by going to every show around to promote her book and to promote the gut flora. And then there's Mike Chesson from Rodspout University, and he teamed up also with someone to put a spotlight on microbiology, and that was a children's book writer, Maros van Huijsteg, and together they made all the ingredients for a new children's book by Maros van Huijsteg called Diego Sandersteg. So kids will know that microbes aren't just nasty, but they also love good things for sustainable energy.


Hello everybody. My name is Radu Slavstankov, Radu for short. You can find me on the internet on those addresses. Pretty much I'm Air Stankov everywhere. I come from a small country in Europe called Bulgaria. It looks bigger on this picture than it actually is. I'm head of engineering of a startup called Producent. And all my slides, because I would have a lot of code, like I usually like to have a lot of code to my slides. So all my slides are already visible on this address in Speaker Deck. And I'm sharing this because usually I notice that during my talk a lot of people do stuff like that. Just taking like a lot of photos. And this will be my last slide with the link of the slide. So if you find the talk interesting you can just take it out. So one of the things, one of my core beliefs about technology is that context is the king. You cannot do anything if you don't understand where this thing comes from. So in order to understand a bit about Producent, Producent is this website. It started as a very traditional Ruby on Rails application. Then moved to a single page React app powered by GraphQL. Right now we are better testing a whole new application called YourStacks, which is built with a very similar stack as Producent. It's a totally separate code base. The team who works at Producent, the engineering team, is seven people at the moment. This is us. And the way Producent works is it has three tiers of apps. It has a Node.js app, which is responsible for server-side rendering. And I'm not going to talk about it today. And it has two groups of Rails containers. One is the GraphQL API server and the base Rails application. And the other one is just a group of containers who are responsible for background jobs. And most probably most of you will use SideKick for that. So usually when you start a new application, like I started this new application, Producent, YourStacks, it starts like that. It looks like this fancy new car. You have a lot of fun. You're just cold. You are playing with it.  You are moving fast and having breakfast. And developing, being very happy about it. And your app starts looking a bit like this. It still works. We do some fixes here and there. We are just adjusting some of it. All our exceptions are like cute bunnies. Oh, that's a cute thing. It's just failing, but it's not a big deal. And you know, we still work kind of it. And when we start seeing a lot of this, you start understanding, okay, there is something wrong here. And the problem is you have left that situation linger too much. So a couple of years ago, a Producent, we introduced something called Happy Friday. And this was a day where engineers could fix bugs because we were doing very rapid product iterations. And there were some bugs, and bugs are usually not in the process. We had some good features like when we shipped something, okay, maybe we should add this fancy JavaScript validation. So Friday says, okay, I want to really add this feature days. This was the time we are paying some of the technical depths of some of our transitions. Also, we use it as a catch-up project, like if your project would take a week, that's four days of work, and Friday, if you are not... And the final thing was fixing exceptions. So we actually stopped doing Happy Fridays a couple of years ago because we adjusted our process, but this was because of the Happy Friday, we were able to stop having Happy Fridays because they finished all their job. So during the Happy Fridays, we had a lot of like fixed exceptions, like just spent two hours a day, nothing much, you don't need to fix anything, just every week it was basically me and a couple of colleagues for every Friday for like two, three years, we spent like two hours, three hours just fixing exceptions, one after the other, one after the other, and basically this gives us a lot of flexibility. Like right now, like the reason we stopped doing this was because now when I open Friday to fix any of the exceptions, I don't see almost anything, it's like five minutes and it's something which was shipped this week, so I just pipe it to the person who broke it. So my first tip of the day is you should be able to have a process around exception, and this process should be very specific to your organization. Does it make sense to have a sprint, a planning where you say, okay, we fix those exceptions at this point? Do we don't?  So for the rest of the talk, I'm just going to give you some more actionable advice because make a process is not very actionable. So let's go back to the basics. Like there is this amazing book by Avdi Grim called Exceptional Ruby where he is, I think this is the best book on exceptions I have ever read, and it has a lot of good insights how the exception system in Ruby work. So this is a usual code. You have a method, it does something, and it just does a rescue, and we don't have exceptions, and that's great. We have done our job, but okay, that's not so good because, yeah, our bug tracker will be silent, but the goal of our exception tracker is to give us information, and if we start hiding code, the bugs is like, I associate it exactly with this image. It's okay, I have no idea where to go now.  So if you are a rescue informer, so just use rescue form a specific error, usually add a note about why this exception happens if it's not obvious, like for example, file errors, network errors, those are obvious, they will be there. Also don't use my name in the notes. We had this policy at Producent, every time you leave a note, you add somebody's name, and the reason for that is because codes move around, and a lot of times in Git history, it's really hard to trace who added the note. So we had a very good policy around noting code, like we add who is user who added it, we often add dates, like for example, after this date, this thing can be removed, or if this is not fixed until this date, it would never be fixed, or stuff like that. So just basic stuff, like in this case, we rescue from a timer error, the usual, the Wi-Fi doesn't work. So my second tip is you should be very explicit around exception, candle very specific errors, and explain why things happen, like try to explain it. And when you start doing that, your second best friend is your monitoring service, like if you don't monitor it, you don't know what's going on. Like if you just wait for your users to send you a screenshot, I see about how beautiful your 500 pages. Like we have a product that's very funny-looking, 500-page, and people sometimes send us to us, and our community are laughing because they're like thinking this is cute and near us. And we use for monitoring, we use century as a service, but my tips work for pretty much any other service. So again, this is our infrastructure, we use century for pretty much all the four layers, like the browser exceptions, the node exception and Rails exceptions. One of the tips here is we use separate projects for each type server, like one for the node server, one for the node browser, which is very easy and sometimes it has errors on Japanese. And that's something which I have not seen many people do, but we actually use two projects for our Rails applications. So we have one project which is only for exceptions who are in Rails and ones which are only in Sidekick, because we found out those exceptions patterns are very different and if you mix them, it gets a lot of noise because sometimes you get an exception in Sidekick and it gets rescheduled, retry, retry, retry, retry, and you see, okay, I have like 10,000 exceptions, but from this one single job to one single user and the web ones have different. So the first thing was when I started doing that, I started to do like more systematic approach and my systematic approach was first reduce the noise. The biggest, the motivator is you open your exceptions and you see 20 pages of errors and you have no idea which is the important one, which happens and what are the different types. So the first thing I did was I excluded everything which was unactionable, like rack timeout, requests, routing error, invalid tokens, Sidekick shutdown is an interesting one because it's like when you deploy and you are dropping Sidekick, but you should be really careful with this. Like sometimes this can lead to problems. Like sometimes this can lead to very interesting problems. Like we were very careful when we blocked because I really don't want this situation, but this is an awesome gift, really. This can also be used for a factoring. So when we started cleaning the noise, how many of you have seen this exception invalid byte sequence in UTF-8? Every time I see it, it's like that. It's just so bad. But every time again, keep calm and read the error message. I mean, it's really bad to use keep calm in a red background, but again, keep calm. And what we do is just check and there is a great blog post in Totbot, Giant Robots smashing into other Giant Robots. They actually have a really good fix around it. It's very simple. You just fix, change the encoding. So one of the things we do is everything which is related to exceptions, we put it in this module handle. So everything related to exceptions, we grouped it into its own folder basically called handle. And we know that if something is there, it's related to our exception tracking. And surprisingly this folder is quite big now and has a lot of code. So this is in handle invalid byte sequence. So we just pass every time we see this exception, we added it into different strings and this works perfectly. Basically you don't have this exception anymore. So my third tip is to reduce the noise. Like you should only see exceptional errors. You should only see things which are actionable and things you should be able to handle. Even though it's something, you cannot handle it. Okay, maybe it's noise or maybe you have a bigger problem. So when you reduce noise, you start, you can now focus on the next thing, fixing the actual exception. So this is an exception that we have undefined method status on milk class. I can imagine a lot of people who have seen this method. And we scroll down and we see, okay, this is in our admin. The status of a subscription is no. Okay, we are calm. That's very simple. I know how to fix it. This is the code. We use the new syntax. Everything is great. Everything is fine. No, it's not. Like if you start fixing code like that, you are slowly hiding your errors. Why account doesn't have a subscription? Every time when you see an error and you are, okay, this should not happen, but okay, I will just put it there. You start putting a systematic approach. First, how many accounts don't have a subscription? Second, why those accounts don't have a subscription? In this case, we had a book where if you cancel this trial only on its last day, you don't have a subscription because there was some logic. It wasn't very logical, but we still call it logic. So then we fix the root plabrum. Like we fix the bug because, again, a lot of the exceptions are caused by brown bug. Then we added the missing subscriptions to the account, so we actually fix the root problem and we create the issue resolved. We don't just hide the problem. We make our system better and actually learn things about our system, which is funny to learn something about something to write. And you have created it. But I can imagine it's the same. The other thing we started doing is, we started adding some guards. For example, our system, if account doesn't have a subscription, we actually use this thing also locks stuff into the exception tracker because at some point we noticed that exception tracker was clean and we needed to put more stuff in it because it was getting boring, and also it's a very actionable place. So we started manually capturing raw errors if there was something around dating integrity, which we wanted to make sure. For example, stripe transactions fail. We put them, we locked them into exception tracker. The user sees a very hopefully friendly message which brings them to contact support and still gives us money, but we were still handling that. So don't hide the exceptions. Fix the root causes. Don't just rush it, get your adrenaline pumped on, wipe it and be ready, but more try to fix why this happens. So one of the first talks of the conference, like the second one, talked about GraphQL. So we are also using GraphQL very early on. And one of the nice things about GraphQL is it has a single controller. So I don't need to wonder, should this be three controllers? Can I just use an update method? It's very simple, but having one controller doesn't help you very much with the exception tracking stack trace. Because now I see an undefined method of value for null class. And I just see it in some random code, but I don't know which query caused it. Like I just see some exception. I have no idea what the key story is. I don't know why this happens. Like in Rails, if you have like a separate controller, I can see, oh, that's from the post controller or something called, that's the post most probably. So what we added is, we added this chunk of code. Basically in our controller, we handled the error. And we added also a bit more help. Like for example in development, we actually returned the error in a JSON format and our frontend tools get this exception and show it in a nice way to the developer. So when developer clicks around the app, hopefully when they work and they see an error and hopefully they see it in the, they don't need to go to the logs to check it. It's already visible for them. Also in tests, if there is an exception during tests in our feature test, we also see it in production. We don't want to show a lot of info, but again we handle this exception gracefully and we capture this exception and we add this extra query parameter. Like with exceptions, we can add some extra information for monitoring and this extra info, what's the query? So if you go back here and scroll down, we now see which was the GraphQL query which caused the issue. And this query also, that's the comment query and that's when you try to create a comment. Oh, that's because we don't do a, wow, some validation. So my, I don't count them anymore, is invest in your monitoring and exception traceability. Like every time you see an exception, don't rush to fix it again. Just think about it. Okay, am I missing some information? How can I add this information and how I can add this in a such a way that the next time something similar happens, I know what's happened. So the other set of exceptions which I was cleaning with, like in a bulk, like I remember, one day I fixed like 70, 70 exceptions in a SideKick related things is SideKick. Like one of the first things we did was again we have a separate SideKick project and that was great. It can produce the noise but SideKick exceptions have this quality of something fails in SideKicks. It constantly fails until you fix it or you remove it. So how SideKick works, some user makes an action and let's say our action creates a achievement. So it's this action schedules an achievement job. This achievement job creates an achievement tracker and you cannot read here this but this is unique. You can only win achievement once. So the code for this is quite simple. We have a job it performs, it calls a service object, create the job for achievement for the user and everybody is happy. Okay, but the user is fast. Users can click quite fast. So this user for example does two actions really quick, faster than our system. And what happens is we start to have this race condition where the second job starts executing before the first one is finished so the achievement is just when the web rails checks the databases is for example the uniqueness check it checks, okay, is it recorded to the database and it returns you the response while the response is returning another commit can add it. So the safest way to have uniqueness is to use a unique index. So in this case this would blow up and this would blow up with there is a couple of exceptions. One of them is if you're in Postgres Postgres unique value valuation. So we can imagine that in achievements create we first try to say okay this user having the achievement but rails don't handle it. So we have another handle thing it's something we call handle race condition which is not the best name but it kind of stuck. So the idea about this helper handle race condition is very simple. So it just executes a code and it handles an exception form which can be caused by unique violation and unique exceptions and it just returns the code again and the way this works is it expects that your code knows how to handle duplication. If you have never added a check is this thing exist or it doesn't exist and this thing is surprisingly resilient and clean up so much code because again users click fast. Another thing which we cite is we have to send notifications like we need to send emails, push notifications or other things like that. So how many of you have seen this nicely named error? Like this one of the best error names. So you have that one and you're like again how man again one of those and you can say okay I would fix the disease we just rescue from it I would try the job that's great then you see another exception because again this also happens now there is a time out there for some reason alright and then you add and add and add and add and add and there is and I mean those are limited number of errors. So what you can do here is you can create we created this handle network errors module where it has listed all the network friends network and friends and it redefines this triple equals method by the way that's a trick from this book. So now I can handle all network exceptions with a single error exception thing so these groups all my exception work and it just retries it so every time I need to handle network I just use this but that's a bit repetitive and because okay I have to write rescue and I have retries and everything works so Rails 6 like we had a monkey patch for Rails 5 but now on Rails 6 you can just have retry on you can say I wait 2 minutes because for example if it's a network timeout maybe the servers on the other side are late you give it attempts 5 and you can write this line you can say okay retry on I started adding those and I noticed that every time I me and my colleagues see the exceptions we just copy paste this code we don't change any of the numbers we just copy paste it so we move it to just a simple module which is candle job network error and now every time we have something related to network we just put the code there and over time if we need to have more logic it would fit our whole system and again it's a very simple self-included module nothing special here another interesting thing when you work with network is every mature Rails project is one which uses every popular or not so popular Rails networking gem like if I check all my network dependencies I think I use every networking library out there like it's wow so yeah it's bad but what can you do I don't speak I mean I pick my dependencies but I don't pick their dependencies so I just have all of those there really when it's a network error all of those are the same so I just list all of them so in a nice way we don't want to care because a lot of these times you cannot think written by us so next tip is you should have tooling around your exception tracking you should like if there is something which is very common to handle like network errors or Twitter errors like if you use the Twitter API as we do have building tools like where your engineers know okay just use this and I don't need to worry about it yeah so now again we are kind of done like no exceptions I'm clean I can go back to the mud like now I can start making exceptions and yeah my talk is close to an end now so again this is my radical proof tips for dealing with exceptions like you should have a process around them treat them like real people have a process around them to avoid them be explicit about your exceptions like don't hide them reduce the noise don't because if you have too much noise you don't know what's going on don't hide exceptions again reducing the noise doesn't mean you need to hide everything invest here in your monitoring like this is really important if you cannot monitor your system you don't know if your system is working and have tooling around the way you handle exceptions like let's make your life easier we are engineers we like making abstractions just build things around that so yeah that's basically my talk


Hi, I'm Zor. Welcome to Unizor Education. Let's solve a couple of problems related to damping oscillations. In this case, we will talk about viscose environment. Now, this lecture is part of the course called Physics for Teens presented on Unizor.com. I suggest you to watch this lecture and all other lectures from the website because it's a course, which means there is a logical sequence between lectures. There is a menu, which basically brings you from the whole topic, Physics for Teens, to certain parts. Now, right now, we are talking about waves. This is the part of this course. And in particular, we are talking about mechanical oscillations. And this is the problem related to oscillations in the viscose environment. Now, this website contains also the prerequisite course, Mass for Teens. You cannot study physics without knowing mass, especially calculus. So, I suggest you to refer to Mass for Teens part of this course, this website, if there is anything missing in your calculus knowledge. Anyway, so, we will talk about oscillations in the viscose environment. Now, what's important about viscose environment, which is different, by the way, from the previous topic, which I was discussing, damping oscillations when there is a friction involved. The friction introduces the constant force of resistance to oscillations. The viscose environment actually is different, because it resists the movement depending on the speed of movement. If the object moves slowly in the viscose environment, let's say, you are moving in the water. And whenever you are moving slowly, there is no problem. Basically, water doesn't really resist your movement. But if you try to move faster, the faster you move, the stronger will be the force of the water to resist your movement. So, when we are talking about damping oscillations, which are occurring in viscose environment, we have to, in addition to some kind of a spring or whatever else, is initiating the oscillations. We have to consider the resistance force of the environment, which is, well, generally speaking, proportional to speed. So, the lecture, which preceded this particular problem, they were actually dealing with an equation of motion where there are forces of the spring, which involves the oscillation, obviously, and the force of resistance, which is proportional to speed. Now, the mathematics of this are, well, not very complex but involved. So, this particular problem is not about deriving something like an equation of motion, which basically I was doing during the previous lectures. This is about, okay, let's say that the motion is given to you and the motion is damping oscillations and in such a way that it actually is a result of viscose movement. And now I would like to determine certain characteristics of the movement, like where it goes back to equilibrium, where it receives the deviates to a maximum distance from the equilibrium, etc. So, this is this particular lecture about given the equation of motion determine certain characteristics of the movement. Okay. So, here is the equation of motion. X is deviation from the equilibrium point. T is time, obviously. And I have it as 4 times e to the power minus t over 2 times cosine of 5t minus p over 4. I just took it from the head. I mean, there is no significance in any kind of numbers. What is significant? Significant is this multiplier because as t is increasing, this multiplier is decreasing. So, if t is equal to 0, it's 1. And as t goes to infinity, this goes to 0. Staying positive. So, basically, this is the graph of e to the power of t over 2. By the way, the graph of the whole function is presented in the notes for this lecture. Now, this lecture, as any other has notes, it's on the Unisor.com website. And the graph is really important. It helps to solve the problem. Now, I will just draw it here. But whenever you will review the problem, it's in the notes. Now, cosine is obviously a periodic function. So, what happens here is the following. Without this multiplier, cosine would look like this. But with this multiplier, as we are moving down the time, we are decreasing the deviation from the equilibrium. So, the whole graph would look like this. So, if this is my e to the power of minus t over 2, the graph would be something like this. It goes from both ways. It diminishes from both pluses and minuses. That's how it will go. So, every extremum, maximum or minimum, will be multiplied by some positive number, which is getting smaller and smaller and smaller. So, that's why you will have this type of graph. So, this is a guiding line for maximum values. And this is the real graph. My first problem is, based on this equation of motion, I would like to find out where we are returning to the equilibrium points. Not where, when. Where on the time axis. So, when, at what time moments, we will return to equilibrium. So, if we start from some point, we stretch the spring. Let's say the whole thing is in water. So, we stretch the spring and let it go. So, it starts oscillating. And that's how it will go through the equilibrium point. And then back to another extreme, where it will be smaller and then another extreme. Squeeze, this is a stretch. This is squeeze, stretch, squeeze, etc. Okay, so how can I determine the points of equilibrium? Well, it's just an equation, basically. X of t is equal to zero. You have to solve it. Well, how to solve it? Very easily. Now, if this is equal to zero, this multiplier never equals to zero. So, it's basically cosine equals to zero. Now, when cosine is equal to zero, five t minus pi over four equals to zero. Well, the cosine equals to zero when angle is equal to pi over two, plus n times pi. Right? If you forgot trigonometry, review it, please. But that's the... Okay, so, and this is five t minus p over four. So, whenever my argument is equal to this, where n is basically any integer number. Now, from this, we can find out five t is equal to... What is it? Three pi over four, plus... Now, let me do this also over four. Four n pi over four. So, I will... This is a common denominator. And now, I can take pi out of the parenthesis, and I will have this. Now, I will get rid of this, and I put here 20. This is the answer. So, now, what kind of n? Now, I said it's any integer. Well, actually, not exactly, because if n is negative, then the whole thing would be negative, which is not good, because this is a time. So, t is time, so it's supposed to be positive. So, n is any integer static from zero. So, n is equal to zero, one, two, et cetera. All non-negative integer numbers. So, this is the answer to the problem of when exactly we are returning to equilibrium. Now, what's important here? What's important is that if n increases by one, no matter what it is, the whole thing will increase by four pi over 22, which is pi over five. So, this is my point. The distance between these is pi over five. Constant distance. So, no matter how far we deviate from the equilibrium, we will always return to equilibrium with exactly the same intervals. That's what makes calling this particular movement like almost periodical. Now, a true periodical movement is when there is a complete repetition. So, if amplitude would not decrease, it would be a pure periodic movement. With amplitude decreasing all the time, I can't really say it in the pure sense of the word that this is a periodic. It's almost periodic because it's really returning to the same position, which is equilibrium, after the same interval of time, constant interval of time. So, as time goes by, I'm returning to equilibrium with exactly the same intervals. Now, you understand that as soon as our amplitude is decreasing the distance which the object is supposed to cover from one extreme to another, getting smaller. But the speed probably is also getting smaller and that's why the timing of returning is exactly the same. So, from this extreme to this extreme, the time will be the same thing as from this extreme to this extreme. Otherwise, we would not have equality of the timing. Okay, so that's my first problem. Now, my second problem is where exactly we are reaching the maximum of the absolute value of deviation. So, this is our points where my deviation goes to maximum. So, these are local extremum of the function. And the question is how can I find the local extremum? Well, let's go back to mathematics and we know that for any function good function, smooth function, differentiable function, if you would like to find points where it actually achieves its maximum value. Well, maximum value is where the horizontal tangential line exists, right? If it's tangential and if it's horizontal, it's local, in this case, maximum, in this case, minimum, extremum. Okay, so, when is it occurring? Well, you know from the math, from the calculus, that to find the local extremum you just have to find the derivative of this function. Now, derivative is a tangent of the angle of the tangential line with x-axis, or t-axis in this particular case. So, whenever the first derivative is equal to zero, tangent of this angle is zero, that's the local maximum or local minimum. So, all we have to do is to solve equation first derivative is equal to zero. So, the previous problem was solving the equation x of t is equal to zero, to find these points, these points. Now, this, if we want to find this point, and this point, and this point, then we have to find the solution to this equation. Okay, so, let's just take the derivative of this thing and again, I hope you remember how to take the derivative. So, it's product of two function and you know that if you have a product of two function, it's the first function derivative times the second plus, this is u, this is v. Okay? So, this is the rule for having a derivative of the product. So, this is the product of this and this. Well, four is just a constant multiplier, so it's applied to everything. Alright, so, four times, so it's the first function, derivative of the second function. Okay, e to the minus t over two. Now, derivative of the cosine is minus sine. So, I have to put minus here, minus one times sine of whatever it is. But, this is the function of function. The first function is 5g. The second function is cosine. Whenever you have these combined functions, you have to go into the inner function derivative and the inner function is 5t minus 5 4, minus 5 4. Derivative of this is just a plain function, so that's 5. Okay, plus. Now, we have to take derivative of this and the function of this. Now, derivative of e to the power is the same e to the power and then we have an inner function which is minus one two derivative. e to the minus t over two. And then the function, the second function remains as it is. So, that's my derivative and it's equal to zero. Now, I can obviously get rid of four. I can get rid of e to the power because it's never equal to zero. So, what do I have? Well, I have minus this, times five, so it's minus five, sine of 5t minus p over four, minus one half, cosine of the same thing, minus p over four. Okay. And this is supposed to be equal to zero. Okay. Now, it's minus and minus and it's zero, so I can make it plus and plus. It's easier. I don't like fractions, so I will multiply by two and I will have ten here. So, if I will put cosine to one place with a minus sign and then divide every, so it's ten sine of 5t minus p over four equals minus cosine of 5t minus p over four. If I divide by this, I will have ten tangent of 5t minus p over four. Right? Sine divided by cosine is a tangent. It's equal to minus one. Or tangent is equal to zero point one. I divide by ten. From which 5t minus p over four is equal to arc ten of minus zero point one. Now, tangent has a periodicity of pi, so I have to add pi times n, where n is any integer. Now, from here I can just get the t is equal to, so pi over four goes to there, so it's arc tangents of minus zero point one plus pi over four plus pi n, and this is all divided by five. Right? Divided by five, I will put this coefficient 0.2. Now, let me just simplify this a little bit. So it's four divided by four, so four is a common denominator, and pi can go outside with one plus, and I don't have this. So that's what it is. Or, you know what, that's probably easier if I will just open this, and this is one-fifth, so I will put twenty here. That's easier. So that's the answer. And, well, I do put a couple of values of this into the notes calculated for n is equal to zero if n is equal to one and n is equal to two, and I'm getting these points. And now, as n increasing, as you see, again, we are increasing by, if n is increasing by one, my whole thing, my time is increasing by four pi over twenty, which is pi over five, which is exactly the same as... So the distance between local extremes is also pi over five. So that's what makes, again, it's almost periodic. My final problem is what are the extreme values, maximum, minimum, maximum, minimum, deviation to stretching or squeezing, stretching or squeezing. Now, how can I find them? Well, since I know this point and I know the equation, all I have to do is my first extreme is equal to x of t zero, where t zero is n is equal to zero, whatever it is, then a one is equal to x of t one, etc. So, and again, I did have some calculations. I calculated the values of this, this, this, and this. And obviously, it is diminishing. This is a plus something, this is a minus, but absolute value is smaller. This is, again, plus value is smaller and this is minus value is smaller, etc. So it goes exponentially diminishing amplitude. So these are the problems which are related to this cause environment and oscillations in this environment. I do suggest you to read the notes for this lecture. They have a much better picture and then there are some numerical calculations and you can actually see that the numbers are decreasing and these numbers are exactly the same. That's it. Thank you very much and good luck.


Breaker Breaker Jack, both RVers and truckers want to stay shiny side up on the big slab. So I sent out a call to the truckers at truckersreport.com to get info on how RVers should be parking overnight at truck stops. And they brought it back five by five. Got your ears on? These guys are pushing 18-legged Pogo Sticks 11 hours straight. And when they finally reach the magic mile, they're checking their eyelids for pinholes only to pull into the hook. And find that all the spots are taken by Jeff and Becky and their lanyards. There used to be more honey spots and pickle parks and Wally worlds for these guys, but those are drying up. And these guys just want to keep the left door closed and make some lettuce tinfoil. So I'm going to give you the real scoop from the truckers themselves today on how we should be parking at truck stops so we can all keep them between the ditches. Hey everybody, it's Robin with Creativity RV and welcome to episode 20 of Be a Nomad, Change Your Life, my Sunday series where I try and give you every tip and trick that you need to hit the road full-time. Today I want to send a big thank you out to thetruckers at truckereport.com for giving me hundreds of replies to my questions for RVers out there because our two communities are going down the road constantly right next to each other and we're driving a lot of weight out there and we all want to stay safe. And you know, I see a lot of videos on truck stops, but I've never seen anybody ask the truckers themselves. So I was on a mission to do that. So next Sunday be sure to look out for the next video in this series which I'm super excited about because these guys gave us a whole bunch of ways that we can stay safe on the road by ourselves or next to them. So let's start at the beginning. There are three big companies that have the five big travel centers. Think like FlyingJ and Pilot and TA. Those are some common ones. So they started to cater to other drivers on the road, people that were going on road trips or RVers and they're looking to make money of course so they're inviting everybody in. But the problem with that is it kind of squeezed the truck drivers out a little bit. Just know that they are regulated and as their regulations go up, their places to park go down. So in a minute here I'm going to go through let's say some codes of conduct that we can use to make sure we still have a place to stay because we also need to stay and pull over and get a good night's sleep. So we're safe without stepping on them or without stopping them from getting a spot as well. Okay, when you pull into a truck stop, depending on your size, look in the front of the truck stop first because the back is usually where the semis are. So if you have a van or a B plus van like I do and you can back into a parking spot for cars, do that first. If you can't fit in one of those spots, the next thing you should be looking for is dedicated RV spots. Now you can use apps like Allstays or RV Parky, Park Advisor. A lot of these apps have reviews that will tell you how many parking spaces they have for RVs specifically and how busy it is. The truckers also told me about a website called TruckerPath.com. There's an app for that also and I'll put the link below that they recommend checking about two hours before you get to a truck stop because it will tell you how busy it is at that exact moment. And they also said if one is busy, one a mile down the road may not be busy and you can find that out through TruckerPath.  The next thing you should be looking for and I did not know this is the cab only spot. So a lot of these truck spots have spots designated for the cab only when they're not pulling anything behind them and that's not as common for them and they can fit in different spaces. So the next thing we should do is try and get into one of those spaces.  Now a lot of these places that I've gone to, there's a huge lot in the back for Simi's and a lot of the places I've gone to, they are crammed together and I'm always amazed how close they can get together. But if you see something that looks like a space between two trucks, don't cram in there like they do because when they get up in the morning they may not be able to get out because they're used to doing that and if you see a space it could have been left there because they need the turn radius to get out of that spot and you may just have unwittingly blocked them in. And if you're going to park in the back, be sure that you do not put your slide out. So I always thought that this was a rule for them because we were taking up two spaces, that is true. But most of them said don't put your slide out because it's hard to see and somebody will take it out because those parking lots can be dark. These guys are getting in at night when they're tired and they said if we want to have a good time just sit back there and watch people go in and out of that lot. It's common for them to take each other's side mirrors off. So if you want to put your slide out, do it on an edge where the slide is going over like a grassy area. Don't take out another spot.  The next big thing on the list for these guys was if you're going to fill up at the commercial diesel center do not park there and walk away. So you guys may have seen my video on water, water, water everywhere and I told you that I didn't know this when I started my RV life but there's often potable water at the diesel pump and I have a diesel rig so I'll fill up there and fill up my water. Well, that's okay with them. Some of the truckers said you think it's not because you're getting the stink eye from some truckers but their tanks are huge so it takes a long time to fill up and they know that compared to them our gas tanks are little so they know it's going to be pretty fast for us to fill up. What they don't want us to do is go in and do laundry, take a shower, go shopping just fill up your stuff and then pull out of there because once they get their load into their semi let's say at the shipper that's when their clock starts and so any time that they have to take in one of these lanes waiting for us to get out of the way so they can fill up is taking up valuable time that then they have to try and make up for on the road when they're next to you and me. Along that same line if you have to do laundry or take a shower try and do it at off peak hours. Now some people were like truck stops are busy all the time especially if they're near populated areas but most of them said that off peak hours is like mid-afternoon. The morning, midday and night time is when all the truckers are there trying to get their stuff done and they wanted me to tell you guys that we have a bathroom and a clean change of clothes and a lot of them don't so you know if we can change our timeline which I do you know I travel at my leisure nobody is regulating me and I'm not in a hurry so if I can time my laundry time to get there in the mid-afternoon I do so that I'm not taking up a washer and dryer when there's a rush of truckers trying to get a clean pair of clothes. So just like I said for like walmarts and rest areas they're overnight spots the same is true for a truck stop so don't put out your barbecue and your lawn chairs and like set up camp if there's room you can do it but I have to say that the truck drivers were like we don't want to see you camping you know if you want to come to the truck stop and stay like us that's great don't camp unless you're going to give us a hot dog and they wanted me to tell you that they also like ice cream. Okay so let's get to some of the misconceptions between our two communities that I found really interesting so the first one is that on some videos and in social media I've gotten the impression from some truck drivers that they don't want us at the truck stops at all and I have to say there were a couple people at truckers report that felt that way but the vast majority of them did not so misconception number one is that they don't want us at the truck stops they do they want us there because they want us to be able to stop and get fuel and get food and rest and be safe because they want us to be safe drivers when we're next to them on the road just like we want them to be safe they just want us to understand that we shouldn't be blocking them from resting or getting back on the road because they are so regulated the next misconception is that truck stops are not safe now I'll tell you that some truckers were like why would you guys want to stay there anyway they're dirty and there's a lot of nefarious stuff going on sometimes and I'll tell you a truck stop is just like any place else if you pull into one and you get a bad vibe and you can move on do it the third misconception I think from our community towards theirs is that they like to stay at truck stops where they stay this is not true I was surprised to find out so here's the deal most of them have a different list of places that they like to stay and it varied by people but I'll tell you that the vast majority of them number one wanted to stay at the shipper so if they take an empty rig to their shipper and they can spend the night there and then load up their clock starts and then they can take off that's their first thing the second place a lot of them like to stay is something they called a honey spot like I said that's a place they just pull over on the side of the road but sometimes it's not allowed now and a couple of them still had honey spots but they wouldn't tell us where they were and I don't blame them and the third place they like to stay is maybe a Walmart or a rest area and last on their list was a truck stop they don't like it the spaces are few and far between and they're noisy okay now let's talk about some of the misconceptions I found from their community towards ours some of them were really surprised that people live and work in their RVs full time like this girl and they didn't really understand that was a thing I had two different people in the forum call us Jeff and Becky so I think that could be a common term they think we're Jeff and Becky on vacation out on a weekend trip taking up their spot so I politely told them that that's not always the case a lot of us live and work in our RVs and we're not on vacation and we don't have giant bank rolls which is another thing that they thought we are just regular people working from our RVs and we just need a safe place to stay overnight too they also thought that Jeff and Becky wanted to stay at a truck stop for the experience like they wanted to get home and tell their friends about how they stayed at a truck stop and I told them this isn't really true a lot of us are on our way to campgrounds or RV parks or like me to beautiful boondocking spots and maybe it's a long drive and so for a night if we don't have other options we need to stay at a truck stop just like they do because we want to be safe and get a good night's sleep and get out early the next morning like them so you guys these are just guidelines and I know that the RV community is full of freedom loving people and we don't want to be told what to do and when to do it but our two communities are going down the road together and all of us want to get where we're going safely so I thought it would be a good time to hear from the truckers themselves and the truckers can hear from us so our two communities can help each other when we're going down the road and we can all get where we're going so I'm sure in the comments below people are going to be all over the board about if we should stay at truck stops at all like is it safe and somebody else will say well I got there first it's my spot and I'm sure some truckers will get on here and say stay out but like one trucker said from TruckerReport.com we're going to get as many opinions as there are stars in the sky but I have to tell you the vast majority of the truckers that I talked to on Trucker's Report were safety oriented friendly people and they were happy to give us some advice and tell us what they thought was the best practice for us when we go to a truck stop so everybody if you liked this video please give it a thumbs up on the way out do give me your comments down below I do want to hear your opinions and your experiences if you haven't subscribed already please consider doing so and truck them easy come back in the comments below everybody have happy travels out there and stay free


OK, our final talk is creative aging through improvisation with senior adults. Would you give a warm and welcome to Ruth Yamamoto? Good afternoon. I want to thank you all for being here and for giving me the opportunity to talk to you. I have to say I'm extremely nervous, so I'm glad that people are not exercising their rule of two feet at this very moment. But thank you. For a closer like that, I can also speak louder. As they said, I'll get into this, I promise. Closer even, all righty. OK, I can do this. OK, so for as long as I can remember, improv's been a part of my life. As we did that exercise, I was on this side. However, I am relatively new to the applied improv network. I was on the other side earlier. In this time of societal unrest, in our country at least, I want to point out that my talk focuses on yet another disenfranchised, marginalized portion of our population.  And that is old age. According to the Census Bureau, these are some population projections. In 2014, 13.9% of the US population was age 65 or older. And you'll see that it just starts getting more and more as we go through the years. With the projection that in 2060, one in every two people in the United States will be 65 or older. OK, just to put it in perspective in this room, I don't think there's any teenagers if there are.  But let's assume that the youngest person is like 20. By 2060, all of us in this room will be part of that population. What that am I liking? So that we will all be kind of in that marginalized, disenfranchised portion of the US. And I speak again, I know that we are international. And that not every country treats its older generations as we do here in the United States. So years ago, I became a new member of the HD. I'd done a stuff work. She had Parkinson's. And so a lot of my sounding was kind of one way. And my study, who had his general practice in being part of this group that he was in, and got it back. And he claims that it was because of improv. He said to me that he thought it was good for anybody, young, old. And I would go and I'd look at my mom. And I'd see that she was pretty miserable and frankly. And it was miserable watching her. And I thought, OK. And I looked around. And there was very little fun, very little joy. Maybe there's something here for me. Because also being a newly minted PhD, I was also newly unemployed. I had some kind of pitching ideas. And I had to get to some place that I could be in. And I pitched an idea to the nursing home that I would teach an improv class. And they said, oh, that sounds great. No, thank you. And they said, but you know, the Little Community has a senior program. And they want to pitch it to that class at this facility for my stereotypes that I had. And frankly, we all have them. I know I do. And I'm not a senior law student. OK. And just one more thing. And so I was also doing with my son. Remember, I'm guilty of making those myself. Doing something cute and kind of something fun. But it was something to take him away from that. And what the tragedy of my assumptions are is that I was thinking about old age, like some wasteland of video and information how to go back multiple times in a night and hearing the day that would come. And then, hey, boy, was I wrong. We marched in the line. We put him in nursing homes. And it wasn't because I stuffed my mom in there. It was the best place for her, really, truly. To do this class properly, and being the scientist and the doctor that I was, I thought I'd do a little research that I want to share with you. But we were kind of like, it doesn't stop after 65. You continue to make neurons in your promising center throughout the school. The other thing that goes for the young, they are now showing that you are at the most creative potential in your senior years. OK, you think about it. Actually, that's kind of interesting. Picasso, Einstein, Shaw, Mr. Alinaldo are producing some of their best work in their older years. So I also found another study, which kind of blew me away as I started getting me going on the track that I'm going. And it was done by some 2001, 300 adults from across the country. And he made two control two groups, 150 each. Each were of the same ability, so that they were evenly matched. He did a pre-baseline screening of everybody. And then the intervention group, the experimental group, that created endeavors once a week. So music, dance, theater, whatever, it was consistent. The other group, they just went through their lives. Then he tested them at one year, and he tested them at two years. And the results worked pretty amazing. He found things like it strengthened their morale. OK, that's like no brainer. It improved their cognitive function. He was doing all sorts of tests. I have to look exactly when the quicksand was one of them. It promoted positive health, such that there were less drugs that they were taking, less pharmaceuticals they needed to, less trips to the doctor's office, and enriched social relationships. So here I am, going into my first senior class with these excellent students. OK, so I, I think, did this the darn two weeks. An improvisation, so the study had theater and dance and music, and I see improvisation as a creative catalyst. It's like creativity on steroids. And so imagine confining that in this population. It was pretty powerful. I'm not gonna tell you about how to teach improv. I know that's sort of what was in my blurb, but you know how to teach it. These are things that I experienced and I sort of kept through with improv. That study suggested that creative activities with senior adults who are throughout our lives reduce the risk for long-term care. Again, think about that with your future in mind and with the future of our country or any of the countries. OK? So a group of applied improvisers, you see the rich potential of your daughter working with these senior adults, and they have taught me way more than I have ever shared with them. One woman came up to me and she said, this class is so great, everybody in this facility should have to take this class. And then another one said, you learn how to communicate. Know what I mean in this place. My students range in age from Saturday to their late 90s. They had different mental capacities, different physicals, physical capacity, but they adapted for each other, they accommodated each other, they shared with each other, they were vulnerable with each other, they problem solved, we laughed. It was pretty amazing. We had problems with seniors. I know I'm not the only one. And I'd love to know how to adapt. I'm trying to think of like, sit, stand, lie, if you can adapt with seniors. It gets difficult, so I'd love it to do that. But by sharing, this group is very selfless. That's why I find about supervisors in general. It's a selfless art. And only through sharing can we get better and make a better world for things. I want you to help, you have the tools, you have the skills to help unlock this marginalized population. Wisdom is not just a consolation prize for getting old. It is creativity when combined with life experience. So, it's not just for others in the world that you go out and be proud of people, do it for your future selves. Thank you. It's really extremely inspired by all these folks. It's inspired by each one of you and what you bring to the table. So thank you so much for sharing and being part of this collaborative environment.


With Paper Mario the Origami King, Nintendo and Intelligent Systems are shaking up the Paper Mario formula yet again. Gone are the stickers and paint of previous games, with paper folding and confetti now taking centre stage. The Paper Mario series is constantly evolving. Sometimes Mario can flip between a 2D and 3D plane. Sometimes he's using stickers or paint to defeat enemies, and now his world is being invaded by Origami monsters. It seems that, for better or worse, with every new Paper Mario game, the gameplay is entirely different. So why does the series change its formula so often? Well, according to long-time series producer Kensuke Tanabe, all of this constant change is inspired by a desire to prevent things getting boring. In a recent interview, Kensuke said, I've already spent over 30 years in this industry. It's sometimes hard to keep motivated if you're producing titles in the same series back to back. What we do to get around this is, for example, to shift the staff around or make a major change to a core system with the aim to create both a fresh team to tackle the title's production, and to bring innovation to the series. According to assistant producer Risa Tabata, the team working on Paper Mario games have the aim of constantly surprising the player. The design philosophy for the series involves relying heavily on big shock moments in order to keep things fresh and prevent the games from growing stale. She said, I want the people who play our games to say, wow, my understanding is that if we want to give players these positive surprises, we can't exactly do the same thing that's been done before. There is another element to this, though. Kensuke has said that he makes a point of seeking out fan opinions on a game and trying to better understand what people enjoy, and what they don't enjoy. From doing this, he's discovered the inalienable truth. You can't please everyone. However, the team does attempt to take fan feedback into account, so when an element of one of these games proves unpopular, the team will throw it out and try something new, rather than keep laboring on a mechanic that clearly doesn't work. The team also hopes that by filling the Paper Mario games with as many new ideas as possible, they'll be able to please as many of their fans as possible. With all of this evolution, though, the team are desperate to make sure that their games never get too complex. The goal is to come up with fun new mechanics that won't alienate casual players to help the Paper Mario games appeal to the widest possible audience. The big change for the series happened during development on Paper Mario Sticker Star, which was turbulent to say the least. Initially, the team began work on a new Paper Mario game for the 3DS, developing a prototype that played very similarly to previous games in the series. They showed the prototype to Shigeru Miyamoto, who was...unimpressed. He accused the team of simply making a direct port of the GameCube game Paper Mario the Thousand Year Door. So, the team scrapped much of what they'd done and started again. This time, they built a completely new gameplay mechanic revolving around stickers. After much effort, they showed a new prototype to Shigeru, confident that this was much better than the previous one. Shigeru said, This is boring. He liked it even less than the previous prototype. So, the team started yet again. And it seems that it was at this point that they started really throwing in as many surprising or shocking gameplay elements as possible in an effort to keep the whole experience feeling novel. Kensuke later said, We'd draw the basic landforms on a whiteboard and imagine what someone actually playing it would feel at certain points. Like, if we put this here, wouldn't that be surprising? And everyone will find this suspicious. So, let's put something there for those who check it out, and packed in as many concrete ideas as we could. It was at this point that the team started focusing on weird ways to interact with paper. With Kensuke yelling, Use as many paper ideas as you can. This idea of random surprises and paper-themed gameplay has become the driving force for the series ever since. For the latest game, representatives from Nintendo and Intelligent Systems sat down together to come up with ways of using paper they hadn't already thought of. Someone from Intelligent Systems suggested Confetti. Risa Tabata from Nintendo suggested Origami. That was all it took to decide the game's focus. Of course, the development team are well aware of the fact that many fans of the older Paper Mario games missed the gameplay from earlier entries in the series. To them, Kensuke says, I do think it's difficult to satisfy certain fans with the adventure game direction if they think of Paper Mario games as simply being RPGs. I hope that everyone will play this game with an open mind. Perhaps that's a good moral for this story. Have an open mind. Just as the team behind Paper Mario games like to try different things and embrace weird and wacky ideas, we also should try to be open to new experiences. You never know. Try something new, and you might end up loving it.