Father suspicious about a mark that his son comes home from school with. All boys and girls go through arguments at school. Even though it's unpleasant, it helps children understand facts about life and the human nature. But what happens when the school is at blame? When this family's boy came home with a mark on his hand, they realized something was off. Still, not all body marks are bruises, which makes this story even more interesting. It is about a boy who came back from school only for his parents to find out that he had unidentified marks on his arm. Tara Chavez, the mother of this boy, considered all the different aspects of the situation before moving her son to the Desert Cove Elementary School. The decision was almost necessary, as the family had just moved to Phoenix. The most important factor was whether or not the boy would fit into his new class. Many factors play a role when it comes to hard decisions, such as moving your kid to another school. The reputation of the school, the tuition fees, and how many students are in a certain class all have to be considered. Still, none of that mattered if her son did not feel comfortable at the school. Both parents are extremely devoted to their boy and know that not every environment is suitable for him, as he is introverted and delicate. After performing thorough research, everything seemed great. Tara, the great mother that she is, did her best to learn about the background of the school, as well as the type of classmates that her boy might have. Concluding that Desert Cove Elementary School is an institution of high reputation, she proceeded to fill out all the necessary paperwork and enroll her son into the school. Unfortunately, Tara had no clue that the environment was everything but suitable for the young boy. This is something that both she and her husband found out a bit later in the story. When referring to the predicament later on in interviews and posts, the mother of the boy regretted the decision that she made. Still, parents from the school, as well as other people who were aware of the situation, gave her much needed support. One would think that a successful first semester is a good sign. However, although the boy, named Caden, was satisfied with how it went, things were about to take a turn for the worst. According to Caden's experience, as well as what his educators said, he enjoyed his classes and was friends with several classmates. Knowing this, Tara was happy that everything was working out well, and Cove seemed like a suitable choice. Caden's father was also confident that this was the right environment for him. In fact, his boy had nothing but good words for his teachers and classmates. As they wanted nothing but the optimal environment for their son, Tara, and her husband did not want to make any changes.  A couple of days into the second semester, Tara decided to go to the school and bring Caden back home. She was surprised to find him quite sad at the school, not happy or excited like she had expected him to be. At first, she planned to question her boy about what was wrong, but she then decided to skip this and simply gave him a long, warm hug. Caden accepted it and did not say a word, either. While she did not discuss this matter with Caden, Tara was startled and sensed that something was wrong. Numerous scenarios were going through her head, including that her son may be a victim of bullying. This is something that she was scared of even before Caden started going to the school, and now there were red flags of potential abuse. After thinking about all the potential situations, she decided to face Caden and try to make him feel better. Tara thought that the best way to approach her son was to prepare his favorite food and try to lift his spirits. As a parent, she knew how to get information out of her child without him figuring it out. At the dining table, she decided to ask Caden a few questions about school and how things were going. She was sure that this would yield some results. Unfortunately, Caden was not interested in discussing the matter. When his mother asked him questions, the boy barely responded or just kept quiet. This was another sign that there might be a huge issue that her son simply did not want to discuss. As Tara later suggested, she felt that he was under a lot of tension during their conversation and that he was trying to hide something. By this time, it was clear that Caden would not speak up, at least, not today. That is why Tara decided to let him leave the dining table and have fun for the rest of his day. Still, she was not planning to give up for long. Being responsible for picking Caden up from school, Tara had the opportunity to discuss things with her son before they got home. One day, the situation got even more alarming, as there was a blue mark on his arm. Tara kindly asked Caden to turn and show her the mark. At first, she thought and hoped that it was nothing but some dirt from playing outside. Unfortunately, that was far from the truth. After she inspected the unidentified mark, she was sure that it was proof of whatever bully in Caden was going through. In her mind, this could not go unaddressed, and the first step of her plan was to discuss it with her husband. A mother's intuition is one of the most powerful things in the world. Tara was absolutely right when she assumed that her son was being bullied at school a few days before finding the mark. To her surprise, it was not a bruise, it was a stamp. In a way, she felt even more sorry for her son, as verbal and emotional abuse can be incredibly damaging. Tara could not leave the story there, she was determined to find out all the details. Although Tara wanted to stay calm and focused until they arrived home, she simply could not do it. According to her own report, she was incredibly angry at the people who stamped her son, as well as herself because she should have done better research. As soon as they arrived home, Caden said that he was tired and that he wanted to go to his room. Tara knew that he wanted to avoid any further discussion, but this was something that she did not approve of. She told him that the stamp was something that they needed to discuss. Tara wanted everyone in the house to engage in the conversation, so she brought both Caden and her husband to the dining table. Caden's father also thought it was a bruise that they were talking about, but after taking a closer look, he could see the letters and words that were stamped onto his boy's arm. He agreed with his wife and suggested that it was a serious situation that they needed to talk about. Trying to learn more about the injustice that happened to their son, both Tara and her husband asked Caden why the words, lunch money, were stamped on his arm. What raised even more alarm is that the two words were in all capital letters. According to Caden, it was not his classmates who did it, and no, he did not stamp lunch money on his own arm. What Caden told his parents was probably the most shocking scenario. The boy said that it was the lunch lady who wanted to make him feel ashamed. This made a lot of sense in a way. Although it was not direct physical abuse, stamping a mark on someone can be emotionally painful. When Tara and her husband found this out, the only thing that they had in mind was to pay a visit to the school and talk with the director about what happened. Not only that, but they planned to meet the lunch lady and hear her potential excuses. What the parents were most interested in was whether Caden was asked anything by the lady. According to him, she gave him no choice but rather pulled his arm out and stamped the two insulting words on him. Why did she do it? No one could tell, but it was clear that such an act of injustice would have to be addressed. Another red flag was the fact that, although Caden stopped eating lunch at school for a few days, the money from his account was significantly decreased. Tara looked at Caden's account and was shocked to find only 75 cents left. This convinced the parent that not only was their boy humiliated, but someone was taking his money. Tara's first step was to take a clear photo of the mark and share it on social media with an explanation of what happened. Unfortunately, she could not take a good photo of the stamp, as Caden was stressed, humiliated, and did not want to cooperate in this aspect. Apart from the mark, the parents were confused by how the school failed to send them a reminder that Caden had only 75 cents left in his account. The latest theory was that their boy did not have enough money to pay for the meal, so the lady stamped the mark on his arm. The biggest question was whether it was the school's fault that they did not inform Caden's parents of the fact that his account was low. Even if that was the case, there is no excuse for the lady stamping lunch money on a child's arm. Tara published the photo and the story soon went viral. The fact that Caden was branded did not go over well with most people. Thus, just a few days after posting the story, Tara received hundreds of comments and messages of support. Both of the parents were happy to find that people agreed with them and wanted to share their troubles. Even more, it was great that Caden was receiving direct support from his classmates, as well as other people on social media. According to numerous reports, what happened to Caden was not an isolated case. As Tara was scrolling through the comments section, she found out that a plethora of boys and girls had experienced something similar. While their testimony was not directly related to Cove Elementary School, everything else matched up. At the end of the day, the location did not matter, stamping the arm of a young child is completely unacceptable. Along with hundreds of supportive comments, a good number of comments were directed to the school and its representatives. One worried parent had a sincere question about what happens if the parents do not update the lunch money account on time. He wanted to know whether Caden would be stamped multiple times if the parents did not figure out the root cause. Surprisingly, the school representatives, including Principal Stacey Orrest, saw nothing wrong with this situation. According to her, kids are given a choice. When their lunch money is running low, they can either decide to go home with a reminder bill or the stamp. This contradicts what Caden said when his parents asked him about the choice that he said he was not given. Still, no one was happy with this response, not Tara or anyone else on social media who claimed that stamps can not be considered a method of communication. Not only did the school answer by mail, but the spokesperson also published an official announcement. They once again suggested that the stamp method has been used for years and that there are no bad intentions. Once again, they reminded the parents of the choice their children were given and that Caden's case is not the first time that something like this has happened. Although the school wanted to justify this method, thousands were not satisfied, so the school declared that the stamps would not be used anymore. This is something that Tara was hoping for, and it was officially published in the Phoenix New Times. There was a similar outcome that happened at the Gardendale Elementary School when Joe Bivens, a father of third graders, was shocked by the stamping methods. At first, Joe was sure that it was just a joke, as his son did not show any signs of bullying. Still, he found out that, instead of a cool mark, it was an, I need lunch money, reminder. When Joe and his wife went to talk with the principal, the response was quite similar, stating that the stamps are something Gardendale has used for years. Hearing this, Joe did not want to let this story go unpublished. For that reason, he spoke at several news channels, informing parents of what their kids go through when their lunch money account is low. Everyone agreed that such branding is not a way to communicate with people. Additionally, it is embarrassing and utterly humiliating. Years have passed since both of these stories happened. We are happy to say that Gardendale and Cove have effectively discontinued the use of this method. Still, that does not mean that the elementary school your child is going to stop that practice.


Hello everyone super cool to see you today. Yeah, I'm not the postgres guy. Sorry. I used it. I love it But today I'll be talking about the different thing Yeah We will talk about async and async does not mean async.io Python is a rich language with a lot of nice frameworks and tools We'll be looking shortly in many of those With a little life code with a little demo with a little bit of theory as well Just to have an overview. What is there? What's available for us right now? What tool can we use on the word? circumstances and so on So the way we're going to do it today We all like come from different backgrounds. Some of us already have experience with async tools and generally network Development in Python some don't so you can interrupt me and ask questions right during the talk Because I really want that everyone like keeps the track of the stock Well, so please do not wait until the end rise your hand or just ask the question I'll repeat it. I'll do my best to keep everyone like in a good mood and understanding. What's happening here? Let's go. All right, so First thing I have to say is I know it was a difficult choice to come to this room having seven tracks on Euro Python and also like having this I Know what we've been thinking about It's this versus this and burning your eyes with code especially with my code is of course Tough decision. So thank you for taking that Will do our best. So as I said, I have a live examples in my talk included And we can also have discussions right during the talk and we are in Italy. So I hope coffee helps as well Who am I very shortly who knows this logo on my t-shirt? Yes, it's pike on web. So I didn't do any awesome framework in Python yet Unfortunately, I hope so I will do it in the future. But for now the only thing I can say about myself No frameworks. Okay. All right. All right. Yeah, thanks Yeah, so for now I can say that I'm the one who is Organizing pike on web. So that's probably the best description of myself and I'm a freelancer Yes, and the plan about today's talk is first We'll just have a bit of the theory recap like what is they seem computing in general or what we have in Python available? What tools we have? That we can use already now We will go then into twisted tornado and I think you're a bit more detailed We'll look including the examples how it works Then we'll have Q&A and I hope we'll have some time to just briefly discuss Django channels because it's a trendy topic and it's also kind of a Sync-ish, so I hope that we have time for that too All right, so what's a sink a quick recap? What is it in general this buzzword? So what we see on this picture is a task, yeah, we have You can see my laser pointer. Yes, great. All right, so we have a Task that is processed synchronously at first. We have a request coming in here We have processing until here then the result coming out Then the request number two comes in between then we're processing it and response and then the request number three coming in Processed response. That's like a classic model that they show us in school But the thing is that it actually never works that way obviously Because one request will never wait for another request to be completed in the reality We will have one request and then right away another and then right away the third one and so on and so forth So we will our requests never wait for responses They will just come and hope that we can handle them somehow So you see that the request number one comes our main thread of the program is Processing it and then request number two comes but we do not have resources for that So we just wait then request number three comes and it also has to wait because we don't have resources for that and Then when the request one is done only then we can go on the request number two and only then we can go to the request number three That's the reality Now what we can also notice in this picture is that the request number one It also has some Spots here, which I marked as waiting this mean that when we are processing some request It does not really mean that we are like heavily computing something all of the time Most of the times are specially in web development. We are waiting for something else like for the database or for File IO maybe some slow NFS share or whatever. So we are not really computing something every all the time We are often waiting for another resources and the problem in this approach is that even though we are just waiting Since we have just one main thread and we are dealing with this one thread with one request Other requests have to wait and that could be optimized And this is where a synchronous computing comes in. So the idea is that instead of waiting we can just do other work So we can work on other requests too. And this is what's shown on this chart. You see the request one comes in It's processed then let's say that at this point we request number two comes in Request number one is actually waiting for the database. So a smart software says, okay We can wait here for some response. Meanwhile, we will do another Thing and another thing is request number two and we start processing it easy good Next so if we map this very very simple charts that I showed you on the web servers and the web Development in general. This is how it will look. So obviously one request is one client Or one client requests in a browser. Let's say you're on some API. So let's say We start our overview with a threaded web server and this is a very simple idea. How can we handle? Many requests concurrently is that we just spin a new thread for every new request. We'd like this totally makes sense It is still a blocking approach But we can scale because the more requests we have the more threads we start and we handle each new request in a new thread Task one meaning user one is requesting some web page. We're handling it here Then user number two joins we handle it here. And so every next user Starts another thread on our back end. The problem is obviously it doesn't scale very well Who used Apache? Maybe old school. Okay, good. So I used Apache to This is Apache in my opinion under many threads when you have too much So it doesn't scale. That's a problem. And the biggest problem of that is that when Apache does this Not only your new client will will just get nothing But also the client that are already like in progress those who are Almost done. If Apache crashes, that's it. Nobody gets anything. That's a problem of the threaded server so there was a smart idea, why don't we have a pool like we can say our Threaded server is capable of I don't know 16 threads. Let's say and it does it efficiently So we have a fixed pool of 16 threads whenever there is more you just have to wait, but we at least know that this 16 are Covered without any problem. Yeah, that's a good idea So we have in this example just two threads in the pool We have thread one that is doing something thread two then the request number one and the request number two Which is just waiting that works. Yeah, so threads Threaded pool works until obviously we just reach a point where there are not enough threads in the pool To handle all of the lot the good thing is that they just have to wait the clients I mean it will not crash as hard as normal threaded server, but yeah, you can do more with your Server and now comes the synchronous web server from the same theory that I already shown to you we have just One thread and we're using this thread to like switch between different tasks in different points of time. So whenever we have a Free slots free resources. We are taking another task When there is when the response or when some let's say the network socket has data of our previous request We're switching back to it and we're finishing it. Don't worry. I mean, it's a very very brief overview I will get into details. It will get more clear later on So the main thing that I have to point out right now is that in this scenario We have just one thread and we hope that this one thread will like jungle with as many tasks as it can and switch on some smart scenario that Whenever there is some Blocking operation the thread is doing another task. That's that's the whole idea. I didn't find a better gift So this is the thread. This is a synchronous server in my Vision good Of course, it was just blah blah. So let's have a real charts Here you have Apache light HEPD and NGINX Apache being threaded server NGINX being a synchronous web server And this I request per second charts so You see here that NGINX gets as high as possible on this comparison. It can handle around 12,000 Requests per second. Obviously it depends a lot on your concrete server and hardware and so on But that's approximate pictures that you can see in practice Then there is another good chart is the memory usage as I already said threads are expensive So whenever Apache starts a new thread, it costs you so the more the more clients you have the more threads you run The more memory is being used in contrasts NGINX and light HEPD are quite sparing with Your operating system resources. Good. So now let's get more into practice So a sync Python is not a sync. Oh, there have been tools around for years Let's say that tornado is eight years old and then there is twisted, which is oh It's it's quite a while. Let's say and then there are also other languages there and you have a sync It's not something you so the question is why are blocking servers still popular like you can say Why is Django popular? It's not a sync. It's so cool. I'm using Django because it's easy I think everyone would agree that sequential code is just much easier to write. You you don't want to have a Callback hell like you haven't usually not just You write your nice fancy code in Django And if you don't have like very specific tasks that Django cannot handle you're happy with it So why I'm doing this talk is I'm going to show you that there are different tools in Python That allow you to write a synchronous code as easy as synchronous code or at least comparably easy yes, and The goal is to make it as easy as Django or Ruby on rails Then I would say that we can seriously consider using a synchronous tools of Python on the daily basis So yeah, as I said, we prefer anything that covers our needs in the simplest way possible So good news is that we have many choices in Python already at this point And we can try different things which we are going to do today and we will see What is best suitable for us? Let's start with twisted twisted is like a Python dinosaur who used twisted in this room. Oh Cool, many people. That's great. I love twisted. So twisted is a framework. It's huge It includes a powerful high-level components like a web server user authentication systems as well as mail Sir, I know it's instant message in SSH clients DNS clients and servers anything So basically any network tasks you have most likely you will have it already solved with twisted also XMPP server Anything really so if you are looking for let's say some implementation of some network protocol with Python Then twisted is your best bet most likely. It's already done in twisted so As they say twisted doesn't call you don't call twisted twisted calls you that's like a motto of twisted That's actually applies to all async frameworks in Python, but they've been first. So let's use this credit to them The base of twisted is a event loop as always think source. Obviously. So twisted is built around the reactor pattern It's an event loop responsible for handling network and system events It basically says when the event a happens react with a function or with a callback B And once started the reactor loops over and over doing this kind of task So it pulls for IO and just triggers the appropriate callbacks Depending on what events we have Loops over and over Then Let's have an example finally So as I said twisted is a really low-level framework and as our first example, I would just try to print something on the network socket So as low as possible and Here we go. So I Have the solution right here. I will show you I will run it later on first. Let's go through the code Just you know to To show you what it's doing. So you feel like comfortable with this So what we have here It's a really really simplistic minimal case. How do you write into socket and twisted? So first you have two factories, of course, you have a Protocol factory here first and the sorrow factory here. You define these two classes And that's actually what this what you have always in twister Do you have a factory for everything and you have a callback for everything? It makes it kind of complicated But if you are really willing to implement some difficult protocol Nice and clean. It's a good way to do it because you cannot miss it something accidentally So of course the main part here is a greeting protocol We inherit from protocol protocol and we define our first and only callback Connection made meaning then whenever there is a network connection on the socket we do self-transport rights chow euro python and That's it and we close the connection. That's the only thing we do here And let's see if I lie to you or not By running this in terminal Okay, you don't see my terminal I will bring it to you then Okay, I'll just mirror the displays. It will be faster in this case Can you see this? Not really good. Okay, let's start like this then then we see Okay, so I have all of the examples here I started the example twisted 1.py. It's the same code that you've just seen on the slide And to check it I cannot do it with a browser because it's a telnet socket It's a it's just a raw socket of this machine. So I'll use telnet Bless you. Okay So we have here chow euro python. Ah, you don't see it at all. I got it. Okay I need to zoom in somehow Can I change the resolution or will it crash? Okay Or anyone knows a shortcut for iterm to zoom in commons plus. Okay Yes, thank you guys. Thank you. Great. Okay, so Then again the demo You see chow euro python printed here. It worked. Good Then jumping back to the presentation No Yes, I'll take mirrored off Yeah, this jumping back and forth is not perfectly optimized. I'm sorry, but we'll do our best. Good. Okay, we're back Then of course, uh, just a socket connection is kind of boring. We are web developers most of us. I think in this room So, uh, let's see, uh, some web web related case Let's have a twisted app that uh returns fellow euro python as a get request Handler So what we have to do here is we inherit from the resource Um, this is a class uh in twisted that implements get the Well, like a http stuff Then we define the render get methods. You see it Here render get and is as easy as return chow euro python and python 3 so encode utf 8 I think I will not do this mirroring again So you can just trust me that it works if we have time at the end. I will show you This example since the shell. Otherwise it gets really boring Next uh twisted is cool So i'm not going to show you much more twisted because The goal is just to show you an idea if you implemented some Protocol you are inheriting from the protocol class. You need to define factories of factories of factories and eventually it will work By that I want to say that twisted is an excellent choice for the best number of cases and especially if you need to integrate some multiple aspects of functionality for some Network protocol, especially a complicated one. So first of all twisted is the concurrency framework It allows you to jungle multiple tasks in one application without using threads. That was a goal of asynchronous development and The code is tends to be a bit complicated. I would say it's it's actually not complicated. It's just complex So you will have a lot of code But the good thing is that you can reuse components of twisted and they have components for pretty much anything you like So it's easy to hack in into existing protocol and customize it to your needs It's also perfectly tested. So, uh, like if you would write, I don't know, uh XMPP bot or something I'd say go with twisted But then there are other tools that make async development in python even easier Just a bit of words about async evolution in python Since python 2.5 we have the yield keyword and it was used just for generators and then After some time there was a tornado web framework that used it for asynchronous development of web applications I will show you examples later Then in python 3.3 We got the generation delegate generator delegation expression yield from which is a very similar concept, but it's just A bit better. I'll show you later and then finally at 3.5 we have a weight Which like in 99 cases for you will be totally the same as yield from but it just makes more sense as a word So it's easier to understand. What is it actually doing and this little This little things say matter So they they help you to to write a synchronous code in the similar ways that you write the synchronous code Now let's get to more examples You do not have any excuse not to use asynchronous Codes in python since 2.5 because that's the point when we got yield and generators But I would recommend to use python 3 especially 3.5 because it makes things even better And again, you do not need to write callbacks every time like you do it in twisted and why callbacks are bad Who is also a javascript developer or just some javascript? Okay, so I don't have to tell you It's difficult to write nice codes and I have a little favorite example that travels with me on different conferences Here it is So yeah, this is the the real code from mongo.js It's testing as I can see here, but still like I know it's it's not something that you need to write every day But if you even had to write this for your tests, there is something wrong Oh, and I recommend you a callback hell.com if you're not convinced they have more cool examples So let's just agree that sequential code looks nicer And we will try to avoid callbacks from this point I think I know the buzzword I think I don't have to stop really long time over this one because you have awesome talks as well in this conference about it Still obviously I will show you the basis So we have some new concepts that can help us to escape the callback hell in asyncio and as well in tornado For that we need to learn a bit of a theory. Who knows what is the future? So maybe I can skip it a future object or okay. Let's let's have a little Little conversation here then so a future is just like a placeholder object It is designed to receive and store a result of some operation that is not available right now at this point of time So we use a future as a placeholder to pass around and it will have a reference to the result of our operation In the example that I told you in the beginning like if we are waiting for the database result We don't want to just block and wait for this result to be available We can Store it in the future and say okay this future it doesn't have a result yet It has a reference to the result and it will be ready at some later points So this future object can be returned to the caller right away And that caller can access the actual result later when it's available And this is the simplest way to use a future to run it. So this is obviously pretty dumb because it's still synchronous But it's just show you how it works. So you need a library that Works with futures like returns futures and for example some async http library You do fetch europeitem.eu Let's say that It's slow even though it's not but let's pretend it's slow and we don't want to wait and block So instead this library will return you a future save it in the future variable And then we say to the io loop io loop. Please wait until this future is ready And then when it's ready, we just call future dot results to get the actual result of this operation as easy as that Now next the coroutine A coroutine is a function. It's a spatial like a generator function that can return some value and suspend So when we call it again as generator, it will continue from the place where it left off last time So unlike a function, uh, it can be called multiple times and Continuing and pausing multiple times and this is a minimal example of a coroutine I didn't use the 3.5 syntax on purpose because coroutines are something that you can get in python since 2.6 or 2.5 even So there is really no excuse not to use them So you define it just as a generator You say for chunk in data dot read and let's say that data dot read is some really heavy operation And then as a generator, we're just yielding chunks back to the caller That's a minimal example Then what does it have to do with the synchronous development like coroutines play really well with futures Because a future is something that can hold a link a reference to the result as I already said And the coroutine can return it. So coroutine returns futures. That's the way it works Coroutine returns a future it pauses until the future is ready and then it continues from this place where it stopped This is an example a coroutine and then We are already familiar with this async.http.fetch A library that does not block but instead returns us a future. So a reference to the result Then we yield the future. So this is a new new concept here By yielding the future we are giving it to the caller. Color in this case is the io loop And we say that okay, please do not wait do other stuff in the meanwhile Like handle other requests in the meanwhile and whenever the result of this future will be ready Please just jump back in this place and continue as if yield was never here That's kind of a magic how it works and then we just print it I mentioned that the event loop is caller in this case. So what is the event loop? It's kind of a reactor pattern that we know from the computer science course It just waits for something to happen and it acts upon the events It's responsible for handling such things as io and system events And I think I think it actually has several loop implementations available like the module that will Default to the one most likely to be most efficient and used in operating systems like for For windows it's still using the select loop but for linux and macOS it's kq So I think I will guess which io loop Can be used in the best case for your particular operating system It delegates it to the operating system loop and just acts as a wrapper However, you can always explicitly choose the underlying loop if you like And again in a few words if you don't want details The io loop is just something that says when the event a happens Do the function b and save this mapping that's in a nutshell what it does Let's see what a sinker event loop is doing So here I already used the 3.5 syntax async def This is just a fancy way to define a coroutine. It shows you right away that hey This is not just a function and not just a generator. It's a coroutine. They seem def fancy So this is enton's talk and What coroutine does is just says do the talk And prints question after this is finished. We do not have any yields here Yeah, so this is just a minimal example How do you run the io loop? No yields no futures just a minimal example Now a bit more complicated. Let's have multiple coroutines so there is Here is enton's talk And here is a coroutine grab the coffee What I want to show you here is that how easy you can switch between two things to your io loop And they sink io so First we run enton's workshop or enton's talk. We print welcome We await await is the same as yields in this case So we do the blocking operation here do talk And at this point where you use yield or await the The library is smart enough to say, okay, we are waiting on some blocking resource Let's do something else and something else in this case is a coroutine grab coffee So then the next line that will be printed will be sip drinking coffee And then we are waiting for something again. So io loop will say, aha, we have to wait here as well So now we jump to some other thing and so it jumps back to the enton's talk And then this statement will be printed. Thanks for coming And then after this coordinate is finished. It will continue number two again So this is just a minimal example how the io loop will switch between tasks for you Could you please repeat Yes, you also have enton's workshop and here enton's talk. Thank you for noticing it. It was my bad Yeah, because I planned it as a workshop first, but then I packed it in the talk So yeah, this will not work, but this is absolutely good. Anyway, so I will I will not run it But thanks for pointing it out So let's compare the approaches like I'm still trying to To explain the the general thing about coroutines and futures to you So this is also a very very simplistic pseudocode This is a way that you would write usually a sequential code in any framework any web frameworks that you use Let's say this is a get request handler We have a huge database query a synchronous one. We save it in the result and then we print the result Easy everyone did that We will be blocking here So we will just wait at this point. That's how it works in most cases. That's how it works in Django then How would you do it in javascript or in twisted? you would say Make the huge database query and then you will use a callback you would say When the huge database query is ready call the on result function so This is a bit messy because it pushes you towards the spaghetti code But it's at least very clear because you're not using any coroutine future magic So it's very explicit. You say when this is done call this function This is the callback way of doing the same thing And this is a I think your tornado way of doing the same task. You're defining a coroutine async dev Then assuming that your huge database query returns a future So it supports this kind of operation. You put a weight in front of it And by that you're telling basically the same thing as in the example above but without a callback So huge database query returns is a future You yield or await that future give it back to the ioloop say when this future is ready Please give us the result and just save the results to the result variable. So this and this Should be the same for you And they actually look the same. That's the whole point of this talk to show you that Async does not mean callbacks Good. So now again Let's have a real example a uctp server Every uctp is a synchronous uctp framework or library Available for async iol and its author andre is actually at this conference So I really recommend you to go to his talk of his training to go in details on this I will be just showing you a minimal example So a web app that returns hello rmini is As short as that You do again the async dev so define your coroutine Then you return web response. Hello rmini No yielding no awaiting And then you run it You create web application you define your first and only root you say that Whenever it goes to this route You execute the coroutine. Hello, and then you run it. So this is a simplest example You're not waiting for the database here, of course. That's why it looks so easy But that's the minimal thing you need to run the aghtp server Of course, we want to get more tricky. We want to have async in the way to be more realistic So this is a very same example, but now You are going to some url.  It's very cool to test your software So this will give us delay of one second just If we will eventually run this code at the end, you will see it What we're doing here. We are defining again a handler We are Requesting with get method this url on top And then the result will be a future or coroutine. You are waiting for it Meaning giving it back to the ioloop whenever the result is ready. We are saving it to response And now the surprise why we are waiting for it the second time. Who knows? Any ideas Okay, so actually there are two blocking operations in this simple example of fetching a url First blocking operation is when you fetch the first byte like when you want to get the first byte of response This is the first operation when it when you need to wait for something But then there is a second one If the response is not going all at once if it's a streaming response This is why you need to wait for the second time So let's say that first byte comes in one second, but the last byte comes in one minute So you would be blocking the difference, right? So that's why you do it twice in this example And then you print the result again So this looks not of course not exactly the same as jango, but I would say it's still decent and easy And you're not using callbacks Then What if we need to request multiple URLs in parallel? I will jump over this really quickly because as I said you have a dedicated talk for isync.io and IEHTTP on this conference So I will just say that if you want to request multiple URLs and do this in parallel It's also very easy. You just need to define multiple tasks Make a tuple of those and yield a tuple that will work This is the second way that you can do the same thing If you are requesting multiple URLs You can use async.io that wait a function that would let you pack multiple futures in one I'm not stopping over this on purpose because I want to show you tornado as well. And now tornado A big difference between tornado and async.io Tornado was there since 2.5 So even when you didn't have the fancy syntax of async.io wait and async.def You already could use tornado and write asynchronous code with it in python Using its generators and I will show you how right now So tornado runs on the same idea of io loop futures and coroutines It just uses a hackish way of achieving the same thing because again in 2.5 There was no native way of having this functionality in python So it has different mechanics, but it is using the similar syntax and the main thing It is well tested. It is stable. It's used really a lot. I can tell you So it's totally production ready if you have some web application that needs to deal with web sockets Think about tornado. It's really a good option for this How does it play together with async.io? Well, this is the idea of the stack that would work On top we have application level like tornado twisted or whatever Then we have the io framework async.io and then on the operating system level As I said, we have the queues that are most efficient for the operating system like kq or epol or select on windows It doesn't work like that right now. So tornado and twisted they both come with their own event loops But this is the idea that maybe at some point it will work like this Event loop of tornado Very similar to async.io. You don't have to remember the syntax. I'm just showing you that It's as easy as io loop.current. It's a single tone You get the io loop and you do io loop that starts to start it. There is no big magic behind it And then if you want to run the async.io event loop, it's also possible There are adapters available in tornado to use futures as well as io loop from async.io And this is how you do it. You just import async.io main loop And you start it so it works too Then futures again are compatible. So tornado prefers own futures But you can use futures from tornado from async.io as well And this is really handy because some libraries will give you futures of async.io type Let's say and you would say hey, why did I do this whole application in tornado and now it's incompatible So it is compatible. That's a really good thing. You can convert between tornado and async.io back and forth easily Finally, my minimum tornado web app It's very similar to the async.io example. You have a handle class You have a get function That handles it and you do sell.write to return the response to the caller And in the same way you define the routing You say listen on this port you start the loop. That's it Now let's have an example of fetching the URL in tornado. It's quite similar to async.io tornado has own async.http client Here it is that is doing the fetching for you So first you create an instance of the async.http client here Then you do fetch URL This returns you a future that you yield to the caller Tornado supports the await syntax as well. I'm just showing you here that you can use it with python 2 as well Which is of course a bad thing, but you can still do it So you yield the future to the io loop. It does the processing and whenever the result is ready It saves it to the response variable and then you can print it to the caller print it to the client Good, then to to fetch multiple URLs You can do it like this I need my mouse here So I did it on purpose here Yes So if you I I did it on purpose here I didn't include multiple URLs to show you how easy is to fetch multiple URLs instead of one URL So if you have multiple URLs, all you need to do is you wrap this as a list Assuming that URLs Is now a list and not a single URL So this is everything you need to change to fetch multiple URLs instead of one URL Tornado is smart enough to notice that when you yield not one future, but the list of futures or dictionary of futures It will automatically process all of them in parallel. So it's super handy. Yes Yes. Yes, you can Good now I'm running out of time So just a little wrap up. There is twisted that is super well tested. There are Implementations of all of the protocols that you can imagine It's production ready and it's time proven So use that if you want to do something really complicated like a difficult network protocol There is a sink io which is the future So if you want to make something in the perspective of future support Take that and it is using the most fancy syntax available on python And then there is a tornado. It's kind of a compromise that stays in between. I personally use tornado Just for historical reasons, but i'm now switching slowly to a sink io I think that's it. You're great. Thanks for not sleeping on this talk and now let's go to questions first one Quick questions because we only have two minutes Yeah, uh, my question is this, um, I see most of the parts when you apply synchronous calls are io What are the benefits of asynchronous, uh, processing when when most of your things are CPU bounds or Yeah, what what would be the benefit in that case? Uh, great question. So yes, it is in the first place designed to be used this way so, uh First advantage that you can take is Is the is a io that's why it's a sink io I would say that 90 percent of cases of waiting in the web application is io I cannot even think of another case. Well, maybe you have some difficult, you know face recognition system running and it takes time Yeah, well, you will not have any benefit one thing that you have though is, uh How else would you do it you would start a threat normally? Yeah, that's a typical way So you can also do it with a sink io. There is a threat pool executor and threat And process pool executor classes in a sinker library So then the advantage for you would be that you would not need to write two different code bases You would not need to use two different approaches. You could use perks of a sink io to wait for the io events and for your fancy image recognition software You could start threats but still use a sink io syntax So it would make testing probably easier a bit And it would just make your code look because it's the same way So the structure is better if you have only like let's say some difficult machine learning computations. There is no advantage as I see I could be wrong One more question Anyone No, okay. Is it good or is it bad? It's good Okay, you you covered it really well One. Yes, great Yes so Um, I know that this is probably very similar To each other. I mean those famous. I'm wondering whether you compared like a performance of them Or maybe there is something that actually, you know Yes, one of them less performant Great great question. So, uh, yes, I did compare the performance Of course performance is such term that there are like very Numerous ways to measure the performance and you could measure the memory. You can measure the speed Many things. So what I did measure is requests per second I measured tornado a sink io not js and scala finagle like four libraries that do the same Sorry guys scala did the best But uh, at least we are better than not js. That's also good Actually Yeah, I think we need to head on out. Yes. So good Thank you all for coming. Yeah. Thank you very much. It was great


From Hollywood, it's time now for Johnny dollar hi a fancy. What's in your mind? Nope, and I don't think I want to the last time it came true Well, this madam Gaga went into a trance or whatever you call it and Yeah, anyhow, she told me I was gonna become an insurance investigator and I've been stuck with it ever since Sure, what do I do? I'm on my way tonight and every weekday night Bob Bailey in the transcribed adventures of the Man with the action-packed expense account America's fabulous freelance insurance investigator goes truly Johnny dollar Expense account submitted by special investigator Johnny dollar to the Universal Adjustment Bureau Hartford, Connecticut Following as an accounting of expended yours during my investigation of the matter of the medium well done Expense account item one one fifteen taxi to the office of Pat McCracken at Universal I hadn't seen Pat since he'd run my Southern California vacation by insisting I tied in with the Jolly Roger matter in the Lamar case where my expense account for some Strange reason came out to a right nice figure I've even included the case of VO that I'd sent him for having handed me those investigations So I didn't know whether he was gonna be nice to me or to rub my nose in the dirt as it turned out He didn't know either I don't quite know whether this is going to be another soft touch for that expense account of yours or a completely crazy one or real Tommy Green seems to think the latter. I don't see why particularly was Tommy green Mid-eastern life down in New York. Oh, but just bill me as usual sure okay Tommy says he's run into this sort of thing before But not on so big a scale. That's why he's worried about it Pat. You still haven't told me what oh Now one of his clients happens to be a sweet young thing named Carol sharp 26 or 7 beautiful badly spoiled love in that way. What nothing go on. Go on. Yes She lives alone in a swank penthouse in the East 50s down there in New York playgirl Tommy holds a hundred and ten thousand dollar policy on him straight life beneficiary her family mother and a couple of kid brothers No father. No the others live over in my chunk PA That's where her father made the dough that keeps her in the penthouse and keeps the others living well in the old family man So what's the problem somebody threatening her life? I don't know Johnny. It depends on what you mean by threatening She just requested Tommy to change beneficiaries. What's so unusual about that? Well, one of them is to be a man named Tony Ricardo for 30 So she's fallen for the guy and is making the nice gesture. Maybe we don't know yet The other is a so-called medium Madame Celia something. Oh, I've heard it before Turn the family fortune over to me and I'll get in touch with dear departed papa. That's what it looks like from here She's being took. How could it be any of our business? Yeah, last time Tommy was requested to change a beneficiary to a medium his hail and hearty young clients suddenly turned up dead And they pinned it on the medium. Mm-hmm apparently this sort of thing goes on quite a bit So it has Tommy worried. So he asked for you All right, just what's he want me to do? What do you want to do? Break out the old crystal ball pattern. We'll see Expense account item to transportation Hartford to New York and the offices of mid-eastern where Tommy Green turned out to be a mild mannered Thoroughly likable successful insurance broker Come in mr. Dollar glad you could make it. How do mr. Green sit down. Won't you? Thanks.  Dollar Spiritualism is a recognized well-established religion sure of course However, as in any other there are charlatans in some of these mediums as they call themselves take literally millions of dollars every year from people by Trickery by producing weird manifestations that appear to be genuinely supernaturally.  No, but I believe you'd better. Mm-hmm Have you changed? What's the name? Carol sharps policy yet? No, but I'm afraid I can't stall her much longer and you're afraid that once you do change it Carol ain't gonna be long for this world. It's happened before dog Well, I I can't just barge in on this madam Morgana Morgana announced that I'm an insurance investigator and then another Hey, wait a minute. What's the name of this other beneficiary Tony Ricardo? Yeah, who is he? Well, I know is what carols told me love affair. Yeah, he sounds like a playboy. They do a lot of nightclubbing together money I don't know family No, no, no that either but he's in for 30 of the hundred ten thousand if anything happens to her if we change the policy How are you gonna start? Well, if this Carol sharp is all Pat McRaggan says she is this case could have a very pleasant beginning I stuck around with Tommy Green long enough to listen to him verify what Pat had said about Carol's family wealth Etc. Take a look at a snapshot of her and get her address Item 3 180 taxi to the bell towers at 614 East 52nd Street a Magnificent modern apartment hotel at the edge of the East River real swank the place even had its own private docks with several Well-kept cruisers tied up and even a small sea plane and I warn you this expense account ain't gonna be small Yes, may I help you sir? Yes, you can I'd like a small apartment for a few days. Are you alone, sir? Yes Well, we still have a small five-room penthouse suite for fifteen hundred dollars a month With complete maid service, of course. Oh, of course and on a minimum one-year lease, of course Look, all I want is a bedroom living room type of thing and I may be here only a week or so Well in that case, I'm afraid there's nothing we can do for you unless Tell me sir. Do you have any recommendations from any of our tenants? Look, I'm an insurance investigator here my card Oh, and I want something as close as possible to Miss Carol sharps apartment But I don't want to have to rob for a private investigator. Did you say that'll do oh dear surely miss sharp can't be in any kind of Think what it would mean to our reputation. I missed her. Oh, mr. Dollar. Stop worrying. Well, yes She isn't any kind of trouble yet But for reasons that well, they don't particularly concern you I need to be as close to her as I can Oh, what a pleasant thought if the same reason I don't want her to know what my business here is Of course, believe me mr. Dollar. I'm the very soul of discretion. Good. See that you stay that way now Have you got a room or two for me? Oh, let me see now. She's in penthouse a on floor 12 There is a two-room on 10 very nice at 325 a week With the complete service of course, okay, I'll take it very well. Just sign this card, please and oh dear I'm afraid I must have a week in advance. Oh sure sure. What's a measly three hundred and twenty? 25 bucks When the two bellboys who carried up my two bags at a bucket piece settled me in 1013 I must admit the place looked almost worth a tag Tastes refurnished spittin polish clean with a plate blast panor on my view of the bustling East River Yeah, I wish for a moment that I could afford this sort of lodging first thing I did was telephone to an old pal Detective division Hey, look son, I need a rundown on a dirty crook. Who's speaking, please?  How'd you guess I want to see you and exactly from 1013, right easy boy Give you any encouragement. You want to name the brand of scotch? Item 41220 one bottle of scotch and setups for two When I was doing the nightclub beat and she's lived in town for quite a while Yeah, a couple of years at least how much do you know about her Randy? Hmm not much She's loaded throws her money around like it's confetti. Yeah, I figured that when I found her staying here Finally left it to her. Hmm coal miner, wouldn't he own a big colliery in Frankville, Pennsylvania somewhere near Machunk Well, I must have paid off good in the old days, but tell me what's uh, you want to give me a refill Yeah, sure Every hair of a madam senior Morgana Morgana, huh? I've chased that blouse the old phony from one end of the island to the other I looked enthused the crystal ball and I see enthused he passed the present see future and into your pocket book Yeah, man, she could I think she's operating somewhere around the Jersey side now. Yeah, thanks But she's still operating operating with real class last time we picked her up and kicked her out How do you mean nice apartment over here in the east side classy clientele? Hey is Carol sharp hook by her purse. So just how does she work? Well usual way the phonies do goes into a trance Rithes around like a seasick rattlesnake then gives with the voices voices, you know speaks with the tongues of the departed Hey, look, where's the money angle miss? Well, she makes like the trances cause her a great agony of body and mind Starts with the pitch about Dr. Bills and the more clients can afford the more they pay and they don't get wise Yeah, she's smart works it like a serial story, you know continued next week. No, I don't know brief me Well at each say-on she tells them just enough to what their appetite for more leads right up to the next hot bit of information Has him hanging on every word then bingo to trances over Oh, however, if you come back next week when I recover my strength So they pay her off in the back a week later to play games with her again I don't know seems pretty obvious to me. Well, that's because you've never attended a say-on's run by an artist at it Hey, why don't you I think I will I see what I can dig up for you. You mean there are still some going on around Dozens hundreds probably kick them out of one place. They move to another unless you can tie a serious wrap on them Which reminds me Tommy Green told me I handle that one myself and madam Gabor Chernarsky got a sweet old man to sign over his fortune and had him knocked off It's a dirty wreck. Yeah, religion science the professions. They all even open door to the rank of tears. I guess Okay, set up a say-on's for me. Randy and meantime, yeah, run me a make on Tony Riccardo. Well, yeah Yeah, he's the other one Carol Sharp wants the name as a beneficiary besides the medium. Yeah Beneficiary of a whopping big life policy. Okay. Good Johnny. I'll call you later When I took my time showering and changing clothes I racked my brain trying to cook up a smooth way to meet Carol Sharp Under no circumstances did I wanted to suspect the reason behind my interest in her at least not for the present Requisite number one then meet the gal. I was just tying my time on the phone Johnny dollar Randy Johnny. Oh, hi, Rand set up a date with a medium. Yeah for tonight But that's not what I'm calling about Johnny. I could write a book for you Huh, I'm telling you Riccardo, and I don't think you'd like it. You seen him yet? No, but I will soon so I can locate him Fine. Yeah, just be sure you see him first Thanks, Randy Now here's our star to tell you about tomorrow's intriguing episode of this week's story tomorrow Well, sometimes the best laid plans can take a terrible beating when a lovely girl steps into the picture Join us. Won't you yours truly Johnny dollar? Yours truly Johnny dollar starring Bob Bailey is transcribed in Hollywood It is produced and directed by Jack Johnstone who also wrote tonight's story Be sure to join us tomorrow night same time and station for the next exciting episode of yours truly Johnny dollar Roy Rowan speaking


Hello everyone. So today we're trying something a bit different. We're going to try and interview. Today I'm going to be interviewing Rebecca Breezy and she is a freelance business consultant. She is also my sister. She works for herself as a freelancer but as a business consultant and I thought that this could be of interest to people who are interested in the freelancing world.  And so I thought it might be interesting to talk to Rebecca a little bit about it and explore the world of freelance business consulting. Hello. Hello. Thank you for having me. So first of all, let's start off with what is a freelance business consultant? Good question. One I get very, very often. And we use the word consultant. It's one of those words that is that kind of gets applied to everything. So if a person does kind of knowledge work, then they're a consultant. So the way I describe it is really advisory work. So I work with business owners or unit managers or business managers in managing their business. And a consultant really sits with their person of interest, so to speak, and helps make good decisions, helps plan and helps maintain sort of consistency throughout the operations. In my case, I am specifically a strategic consultant. And so what I do, my role within my client companies is in a sense that of a generalist that understands how all the business parts work together and helps the business owner or manager once again make good decisions, set up systems for operational sort of smooth operational running and grow the business. So set their business up in a way that it's constantly growing. So what I can add to that is also to help describe what a consultant is not. And that is a coach for one thing. Again, these are titles that we can all apply to ourselves. So there's no direct definition, but I think the simplest way to define the difference is a business coach helps you understand what business you want to be in as well. And sort of it's kind of a step before, if you will, helps you say, okay, this is what you're good at. This is what you're passionate about. And then build out your business from there. Whereas a strategic consultant, I need to come in once those decisions are already made, you know what you're, what you want to be doing and what you want to be delivering. And I help you make that happen. I'm not so much working on you, the person I'm working on you, your business. What type of person would like to become or what person, what type of person could become a freelance business consultant? The main key where there is freelance, of course, so and that's true of all freelancers.  You have to understand working at your business and in your business and be prepared to do both. So working without the resources of a big company. So all those things, as I say, which are universal to freelancers that you run into and a lot of people who watch these videos run into. The consulting side specifically, you need to know, you need to be able to productize something intangible. So the point is, a freelance translator delivers a specific tangible, which is a translated document and it is either done or it's not done. It either makes sense in the target language or it doesn't. There's kind of very much a right or wrong. For consultants, there is a right or wrong and it does need to be tangible. But it's not so much like this defined product that I can build and hold on to. It's certainly, you know, for me, it's more of a process that I'm putting in place. And so you see the results a little bit over time. So you have to know how to define what those results are and then explain them in the immediate as well. Because it's not enough to say, just work for me and then trust me, it's going to work. So making that, you know, knowing what you're good at, but also being able to productize that is very important. To be a business consultant, you need to know the value of what you're doing, not just know what you're good at, that sort of thing. So that's really the type of person. It's the type of person who can create tangibles from knowledge work and deliver those. And then, as I say, universal tool freelancers, keep the balance between delivering and growing your business. So if I understand correctly, someone who is A, good at something and B, knows what they're good at and then C, knows how to explain or how to translate their knowledge into something that's useful for someone else, for someone else's company or someone else's business. Okay. Absolutely. And how would someone, so say someone watching this video feels, well, I'm good at something and I can, I can do something like that. How would they go about setting up and becoming a freelance business consultant? Yeah. Excellent question. First of all, articulate what you're good at. And the reason I say that's an excellent question is because sometimes we say, well, this is my experience, so I can keep doing that or I'm, it's a somewhat superficial approach of I'm good at this or I've been through this and so this is what I can do. Don't think so much about your experience, but think more about the outcome of your experience. What have you achieved? So not just what I've been through in life, but really what has been the result of my specific effort? Because some of the things that you achieved were aided by other people or by circumstance. So knowing how to actually hone in on, I am good at this. I personally and through my specific efforts have achieved this. That's how you really start to define what it is that you are good at and what that value is that you can then bring to other people. So being able to isolate that is not very simple. And so that's the other side of this. You need to be able to do that, but also don't be afraid to get started. And you've talked about this in your videos. Anything that's worth doing is worth doing badly. That's true for your consultants as well. So start getting out there and selling your services, understand how that resonates with people and what kind of questions they're asking you, and use that to continuously refine your offering. So you need to always find that balance. And this is true for business consultants and it's true for all businesses. This is actually something that I preach to my clients. Always to find that balance between what you are good at and what the market needs. And make sure that you're always connecting those two things. Right. Well, first of all, just for the record, I didn't come up with that. Everything worth doing is worth doing badly. I think it was Zig Ziglar. But anyway, it was someone else who came up with that. But yeah, I have repeated it because it's, I think it's a good mantra. And so just to specify a bit more, it seems to me that this is someone, so someone maybe who has experience, even who doesn't have any entrepreneurial experience, but maybe has experience in a company working in a certain industry or something along those lines, could then say, well, I have experience, I have attained certain results with this. And so I know how it should be done. And could then look into becoming a freelance business consultant using that experience. Right. Correct. And let me give my background as an example. I worked in a tech startup for 11 years. So I joined a company two years, barely two years into that, we pivoted to enter the tech space. So we really started up all over again in a whole new product, whole new product offering, whole new method of sales, et cetera. So at that point, I was the second person in and we needed to build this up out of nothing. We were a startup at that point. We did get financing. We did end up doing several rounds of financing that I also was involved in. But at that point, we were still bootstrapped. So how do you do customer research without resources to employing customer research? Well, you just do it yourself and you speak to your customers. So that's really where I started. As we built the business up, we needed to place people in all the different roles within a company as you scale up. And so I had to be part of those roles and then find the best person to hire for them. And as the company grew, my role was always making sure that all of those different people and departments worked well together. So I did this for 11 years and part of those 11 years was me moving to the United States. That occurred in the UK, moving to the United States to open up US operations and essentially starting up all over again in the US because I got to bootstrap that operation, which I enjoy. So that was a good experience. So all of that to say that when I was then reviewing what it is that I was doing for this company on and on, I started to identify my strengths were making sure that all these parts of the companies were working well together, setting those strategic goals and understanding what we needed to achieve, communicating with and getting information from our clients. So I tried to always make those things tangible so that I could report on my results. That is the experience that then I took with me as a consultant. That's how I understood what I'm good at. So it's not just that the company grew where we got these sorts of sales. What did I do in order for the company to achieve that? So understanding that, again, making it as specific as possible and the way that you can do that is as I say, look at your achievements. Also ask yourself what comes naturally to you and just as important, if not more so, what do you like learning? So the areas in which you like learning are areas that you will continuously pursue naturally. So be realistic about what you enjoy doing and what you enjoy learning. And just out of curiosity, what if someone is coming out of, is just now graduating from school or just coming out of school and doesn't really have much corporate experience? What road might they have or what path could they have into becoming a freelance business consultant? That's it. That's interesting. If I'm going to be very harsh, I will say none. You have to have experience to bring in there. But that is not universally true because you can learn by doing. And what we were saying before, if anything worth doing is worth doing badly. But you must be aware of your limited experience at that point. Yes, perhaps you had part-time jobs in school, even full-time jobs. Yes, perhaps you had summer jobs. But be realistic about the responsibility that was on your shoulders. And if you did not deliver, what was the backlash there? So the higher your responsibility, the bigger the weight on your shoulders, and the more prepared you are to then go in and help other people bear that responsibility. So if you are a neograd and this is what you want to do, then I would say start very, very targeted, very, very specialized. Start small, but use that experience to learn. So learn by teaching, in a sense. Find that one area of niche that you can go into a business and say, okay, well, just give me this one small area of your business. Allow me to help you build that and run with it and use that time and experience to learn about the other parts of the business. And then scale up gradually, and gradually, not because you need time, but because you need experience. So be realistic about what you're learning. Also know that the more things you get wrong, the better you will be at consulting for other people. We learn the most in times of adversity. So, you know, just if you do something once and get it right the first time, don't let that feed into your confidence. You know, the idea is to always be in a little bit over your head. That's how you're learning. And then that's the experience that you can then bring to your business as you grow your practice. Right. So if someone's just starting out, and whether they're a neograd, as you call it, or if they already have experience, but they're just starting out as a freelance consultant, freelance business consultant, what about maybe offering their services for free to a company or maybe to someone they know just to gain that experience? Is this something you would advise or do you think it's good or bad or what? I advise never offering your services for free. But that doesn't mean that you have to offer your services for cash reward. So the point is you can work for remuneration that is different than money. So be smart about that. One of my first gigs was my services in exchange for some web development. I needed to up that presence. I don't have that expertise, but that allowed me to build my portfolio because I could then use that client as a testimonial. It also got my website done, which I needed to specifically to further my business. So it's not like I just want a pretty website. There was a business result there for me. So that's just an example. So don't work for free, but feel free to be creative about what you're getting out of it. Just make sure that you're getting something out of it that is going to help you further your business, even if it is just that testimonial in case study that you can utilize that publicly and that has a direct impact on your business growth. So in case someone is or maybe on the fence or maybe they're not interested yet, what would you say are some good points about being a freelance business consultant? Well, there are a lot of things. And again, there's sort of, so there's the personal side of work-life balance, so to speak. I don't actually like that expression because when I was in house, both corporate and with a startup, whenever people said work-life balance, generally, they just wanted to work less. And so I grew this frustration with that expression of saying, well, if anybody came to me with that, I was like, no, go home, think about what you actually want, and then come and say something specific to me. And if you do want to work less, that's fine, but just say so. Let's all know where we stand. Anyway, so all that to say, I'm using that expression, but what I actually mean is managing my life the way I want to. Again, that's true for every freelancer. It's something that you speak about a lot in your YouTube channel, picking your clients, picking your hours. I like to work and there's always a joke amongst my colleagues and people who know me about me being a workaholic. I don't think I am a workaholic because I can turn off and I do fairly regularly, but the point is that I like to manage my own time. I wake up super early and I start working very, very early. I don't mind working on Saturdays and Sundays and I do all that because at 2pm, I'm not very bright. That's my downtime. That's after lunch. I'm not at my strongest. So at 2pm, that's when I'll go to the gym or take a break or run errands, that sort of thing.   It's not like the big unique moments. Those are unique. So being able to manage my everyday and manage those little things in a way that I want is important to me. So that's speaking to the freelance side. And also on the freelance side, I suppose, is picking your clients, getting to work with multiple clients. So that's something else that I like. I like this fact of getting able to see so many different businesses from the inside. It is personally gratifying to me to feel that I am impacting many businesses. So that's all, again, part of that personal gratification of what I do, the good side of being a business consultant. And then the consultant specifically is, again, I admire people who run their own businesses. I like people who manage businesses well. Management is changing drastically. We've seen it throughout the last couple of generations and we're going to keep seeing it the way that people are motivated and incentivized, what people expect to get out of work. So all of these things, again, I like to be a part of that and related to what I was just saying, being able to be a part of that for multiple people. So in my role as a freelance consultant, I can feel that I can continuously learn from that, but also have an impact on it.   I get a lot of personal gratification from what I do. I get motivated to wake up in the morning and look forward to seeing this impact that I'm going to have. And again, this is true for all freelancers. I'm sure you feel this too. That paycheck is an incredible feeling. When you get a paycheck and you know that every single dollar on that paycheck you produced, it's not because of the brand that you represent or the systems behind you or the people supporting you. It's all you. There's no feeling like that in the world. Yeah. No, definitely. I think that goes for anyone who's an entrepreneur who works for themselves through the freelance or something like that. When you do get that paycheck, when you get that money, you know that 100% was because of your efforts and not because of people behind you or your brand or your company. Yeah, it is really a great feeling. And that, yeah, that's definitely a good point for anyone in our business. But anyway, so we talked about some good points about being a freelance business consultant, but in the interest of honesty, what are some bad points about it? Irregular income. So we talked about the glory of that paycheck, but you don't have your standard wage and one month will be great. Another month, it doesn't matter at what point you're on your business. That's something you have to be aware of. Even very successful, it still fluctuates. It doesn't mean it fluctuates drastically, but it fluctuates. So that's certainly part of it. And so the flip side of everything we're saying, you don't have all of that support. If you need something done, it's up to you. You can't just pass it on to HR or legal or admin even. You can't just call somebody and say, I need more pens, order me stationary. So you don't get any of that support. And that's true, yes, in the ordering stationary, but also in things like building your business and making sure people not just know that you exist, but remember that you exist. That's all very important when you're freelance anything and when you're freelance consultant. And again, going back to what I was saying at the very beginning, your work is somewhat intangible. I said, you know, one of the challenges is making it tangible, but that takes time. And you have to be the one doing it. Again, you don't have that whole support system to do it for you. So there is more to keep, there's more over which you need to maintain control. And it's sometimes it's frustrating, especially at the beginning, but even throughout your business, because as I say business fluctuates, and when you're at your busiest with clients is when you should also be marketing for your next client. Because otherwise the problem is always you're working on so much on your current clients that then those contracts end or those projects end and you don't have anything, your pipeline. So those balances, it's not just the effort that goes into it, but it's the effort of remembering to do all that. Those are some of the downsides. And if that is not something that either comes naturally to you or a challenge that you think you'd enjoy, so to speak, then that's something to bear in mind if you're considering this line of work. Yeah. And I know it definitely hit me when I first started out on my own, because like you, I was working in the corporate world and then I went out on my own. And you realize that, I mean, you're wearing all these different hats. And yes, you're the one who has to get all the new pens and paper clips. And at the same time, you need to be marketing. And at the beginning, in fact, no matter what your business, you're probably marketing and doing sales more than whatever your business is, because otherwise no one's going to come around to you for your business. Right, right. Very true. And that's the thing. And a lot of people will say, well, I'm not a natural sales person. So I can't do this.  So you still can do it. But yes, you need to be realistic about the fact that you need to be out there and doing this. And that's not going to end just because you've got clients. That is true. That is true for the duration of your career as a freelance consultant or as a freelancer. Yeah. Since you are a business consultant, I was wondering if maybe we could get some business consulting tips for people who are listening here. If you have any tips for, so most of the people listening to this are very small businesses, as in one person. And so they're entrepreneurs or freelancers and stuff like that. So I don't know, do you have any tips you could give us? Sure. Yes. So many, but let's narrow down to some universal truths. One is to always be learning. So again, this sort of very touchy-feely 21st century approach to Glenn Gary, Glenn Ross. But the truth is, in this connects to what we were just saying, you constantly have to be marketing yourself, constantly have to be developing your own business. So you constantly have to have something to say. I mean, it's as simple as that. So knowing what is happening in the environment. So outside of your own desk, out there in your client environment, your industry environment, the general environment is important. Knowing what your clients want, what they need, what they're afraid of, what the trends are and the fads are that are affecting their decision making is important. So always be learning, do that through networking, do that through association affiliations, reading, journals, general news, etc. Just know that you're always getting more information that you can then feed into your own marketing and your product, etc. The other one is to also sort of connect to what I was saying before, always be in a little bit over your head. And this also means that you're learning.  Do that. And pitch for things that you have 80% of that experience, not 100. Do that. That's fine. You will learn by doing. You're probably better at things than you think you are. You have the experience and especially the more you're doing it than the more you're learning from your experience. So challenge yourself continuously. And again, that's how you'll know that you're growing. And that's what will allow you to get bigger and bigger jobs or newer, different jobs. So very much those things. Always be learning, always challenge yourself. And also what I said at the very beginning, define your product. It's not etched in stone. So don't be afraid of adapting as you learn new things. But always know that you have a specific deliverable to offer to people when you're speaking to them. And do that in three sentences. If it takes you three paragraphs to define your product, you haven't defined your product. So learn how to narrow it down. Don't be afraid of testing out different options there. But just have a tangible. Always know what the outcome is of what you're doing. And that is your tangible. Well, that's, yeah, I wholeheartedly agree with everything you said. And no, especially the challenging yourself. I find that for a lot of people, they're scared to get started or they're scared to progress to like something bigger because they say, I'm not ready yet. I'm not there yet or something like that. And you do have to take that step. Obviously, not to something, you know, into rocket science, which if that's not your field, but to push yourself and say, no, I can, I'll figure it out and I'll find a way to do it because that, yeah, that's the only way to progress. And this also, you know, you're saying before, should you work for free to get started? That is also a mentality that you can take with you throughout your career. You know, if there's something that you feel, you know, I really want that job, but I don't think they're going to give it to me. But if I can, you know, so be creative with your contracts again and say, okay, I will do this for you at a reduced price or, you know, not for cash, but for this other thing, because I really, really want this project.  It's, it's, you know, you're constantly growing. And so you're always employing those same tools and techniques to do so. Yeah. Just briefly before we stop, I just to get some concrete information about you, how long now have you been a freelance business consultant? Full time freelance has been since this year. So it's been about, well, a couple of months into the, about 10 months now. Have you, what kind of results have you been seeing? I've seen satisfactory results. I expected to not be essentially making money for the first nine to 12 months at least. And that was not the case. I started making money within a couple of months. That was in part through my network. I, when I decided to go freelance, I called everybody I knew, friends, colleagues, business partners, family and said, this is what I'm doing and sent them emails and sent them my website. And as I fine tuned, I kept them apprised to that. And so, you know, and, and being friends of mine just meant that I had people that I never would have thought that I'd work with just because of the nature of their jobs in mind who would call me up and say, you know what, I've got this thing and can you just help with that? It's like a two week job. It's a small thing, but you're available help out. Somebody hired me a research journal that I've done work with in the past, hired me to write a couple articles for them. Again, I never would have actually thought to go to them. So, but because I told them and we're having the conversation, they're like, you know what, we've got this deadline in six weeks. Can you get an article to us? So, so I've, I have seen good results. It has been through networking. I joined a closed networking group. I joined other associations or enhanced my activity and associations that I was already in. So it's all been through word of mouth and direct communications, direct encounters with people. And I've taken on jobs and absolutely one of, one of the first jobs I pitched, I sent a proposal and the business owner came back to me and said, I don't really want to do any of this, but I, I, you know, but can you just do this other thing for me? And I just, I just gone in. I, I, I overthought it is what I did when I sent this proposal. And, but, you know, but he said, well, that's, but I kind of need this. And I said, okay, well, let me do that. And he's turned into one of my principal clients now. I mean, it's, you know, so there was, I felt a very rocky start, but instead we have a great working relationship. He continues to send me more and more business. So yeah, the results have been good. Finally, how can people get in touch with you if they do want to get in touch with you? Is there a preferred way? Yes. Yes. So my website is rgbrixi.com. That's rgbrizi.com. That's also my email. It's rgbrixi at gmail.com. On my website, there's my blog. I write once a week, I said, I post a new strategy post and also a do for my series professional patois in which I tear apart business jargon. So you can see my blog post there, but I mentioned it because you can also subscribe to my newsletter in which you'll receive my blog post by mail and any news that I have, obviously it goes in there. So if you just kind of want to see what I'm thinking this week and learn, learn more about what I'm doing, that's one way to do so. But also do email me. There's a contact form on my website or send me an email and let's talk business. So I'm going to leave all the links and everything in the description below so everyone can get access to it. And before we go, is there anything else you'd like to add? Well, first of all, thank you of course for having me. This has been fun. Some of you who watch this channel may know that I've edited not all of these videos, but some of them. So I'm a big fan of the FTT YouTube channel. But the tips in there, part of why I enjoy editing in them is because I watch them anyway. The tips in there, there are a lot of universal truths for freelancers. So that's why I say, you know, the product that I deliver is different than what you deliver. But I think a lot of the struggles that we have and a lot of the approaches that we need to use are the same. Even if the specific tactics are different, you know, the way we need to manage our businesses are the same. So there's, there are a lot of good tips on this channel. Keep watching. Well, thank you. That was a great pitch and I didn't even ask for that. So once again, this is Rebecca Breezy and she is a freelance business consultant. I will leave all her contact details in the information, I mean, all the contact details she provided in the information below. And also, just in terms of transparency, she is my sister in case you didn't notice the resemblance. Yes. And anyway, thank you very much. I think it's already been half an hour almost that we've been talking. So thank you very much. And I'll talk to you next time. Thank you. And thanks. Okay, sorry, I'll let you go. Well, thank you. And thank you everybody for watching. And if you like this video, click like because that always helps. And if you want more, subscribe. You do watch my videos. You weren't fiddling. Okay. And so I won't even say that part. I'll see you next time. Thanks. Bye.


Hello, my name is Tony Earhart. I'm the new MTSS and Peek Project Coordinator at the ESU-8 in Neely. This is my twelfth year of experience in education. I have experience in general education, special education, counseling, and RTI, which is now MTSS. So what is MTSS? Let's see what others think. What do you think MTSS stands for? MTSS, I really have no idea. Okay, any guesses? So what is MTSS stand for if you had to guess? Pioneer school So this is what your mom does.  Works at the ESU. And does what? Helps schools. All right, so I work for the ESU currently and I'm the MTSS coordinator. Okay, do you know what that means? Absolutely not. Do you have a guess? I can't even think of it. What do the letters MTSS stand for in mom's job? Do you know? Do you have a guess? No. All right, so I'm the MTSS coordinator at the ESU. Do you have any guesses of what MTSS would stand for? I have no idea. My guess would be men's team secret society. Well, that's a good guess. So we'll find out. MTSS stands for multi-tiered system of support. It's a framework that promotes an integrative system connecting all components of teaching and learning into a high quality standards-based instruction and intervention system that's matched to a student's academic, social, emotional and behavioral needs. For MTSS, the ESU provides training. I can provide classroom coaching in various ways and provide collaboration and support. For ILCD, I can provide resources for the targeted improvement plans and data analysis. It is up to your district on how much support you want for myself and the ESU. The services I provide are free of charge. Very passionate about the process of MTSS and how it can truly improve the directions of education and impact every student to learn the concepts he or she needs to know and to do their best. If you have any questions or comments or concerns, please feel free to contact me at the ESU at<PHONE_NUMBER>. My extension is 1226 or email me at tairheart at esu8.org. So here's a pep talk. Let's stop being boring. Let's give students the support they need. We all need pep talk. Hey people, life isn't a serial year. We're on the 17th. I'm on your team. We have our team. This is night, people. You got air coming through your nose. You got heartbeat. That means it's time to do something. A poem. Two roads diverged in the woods and I took the road less traveled. It hurt, man. You look bad. What's your dream secret? I think you did better than me. I think that's how it goes. If you have a better dream than keep going, keep going, keep going, and keep going. What Michael Jordan had planned in high school? What if he quit when he didn't make the team? He would have never made Space Jam. And I'm running Space Jam. What will be your Space Jam? What will you create that will make the world awesome? Nothing if we keep sitting there. That's what I'm talking to you today. This is your time. This is my time. It's our time. We can make every day better for each other. If we're all on the same team, let's start acting like we've got work to do. We'll be proud of our own team and all of this. To supervise you, to give the world a reason to dance. Let's get to it.