In this video we're going to talk about FUBOU TV and whether you should buy it or not, we're going to look at the facts that there's a buying opportunity that could be coming very soon, if not already. And this stock could have a huge amount of potential going into the long term and the medium term and we'll go into all this information and some of the research on the company that we found which I feel is quite promising for the future of the company. We're going to get right into the information, not waste your time, let's get right into the information. Rydym yn ddechrau ac ond yn ymgyrchu'r cyffredinol. Yn ymgyrch yn yr ystod yn ymgyrch, ond ond yn ei ddweud. Yn ymgyrch yn y dyfodol. A ydw i'w ddigwydd, y dyfodol i'w ddweud, a'r dysgu'r cyffredinol yw'n ddigwydd, dwi'n credu'r fideo yn ymgu'r gwahog, yn y pwynt yn y fideo, nid yw'n fyddi'r cwm. Be cyhoeddwch yn ei ddweud? Fyddw'n rhaid i chi o ffubu tv o'r ffubur tv oed? Dwi'n cael ei wneud, yw'r Ffubar TV? Felly, mae'n gweithio i'r Ffubar's next billion dollar start-up in 2019. Fubar TV yw'r live TV streaming platform, felly mae'n streaming platform, ac mae'r top Nielsen rankts sports, ac mae'n gweithio'n gweithio'n gweithio'n gweithio'n gweithio'n content on their platform of people of sports and of you know programming that people actually want to watch as well news and it says Nielsen rankts sports news and entertainment channels for core cord cutters that are any other live platform than any other live platform so they're actually producing something that's actually got a competitive advantage because they're doing it more than the competition as well so they've got a strategic competitive advantage at a glance so 316,000 paid subscribers in 2019 which is a good amount and that's set to grow in the future coming years then you got 300 million total hours streamed in 2019 and of that 144 monthly hours streamed by per user now that seems like a significant amount of hours watched in a month on a platform out it'd be interesting to see how much Netflix actually get per hour per month in terms of hours watched I feel that that is quite a good amount and ultimately the more that the customers are using the platform then the more likely it is that they go into stick and stay subscribed because they feel that they're getting the money's worth and they're using it actively using it so this here is actually an incredibly good sign and it's something that's not many people are talking about the fact that loads of people are watching many hours of this every month getting their money's worth out of their paid subscription and that means that there's going to be a lot of people there that are just going to continue that subscription so then rather than having you know someone come along free during 16000 and you know they lose 70% of the subscriptions within the first six months or something ridiculous that is unsustainable so the fact that loads of people that get the subscription are watching a lot on the platform means that there's a lot of a loyal customer base to this platform so if they've got that loyalty then what they can really focus on is marketing towards new customers which is what they've been doing they've increased their subscriber base significantly because they've focused on maintaining their subscribers that they've currently got make sure they don't drop off but at the same time trying to you know market and advertise for more subscribers they've got 147 million dollars in revenue in 2019 as well and that's set to grow again in future years now I thought it would be interesting to mention who are the leadership team of this company because as we always say there the leadership teams are that actually drive the company's success so it was appointed so we've got to hear this individual David who's CEO and director in April 2020 for the streaming platform Fubur launched in 2015 as a streaming soccer service and today is a sport focused cable tv replacement for the entire family in April 2020 Fubur tv closed a merger with face bank grouping to create a leading digital entertainment company combining Fubur's direct to consumer live tv streaming platform okay so it's very interesting that there in terms of that he's incredibly experienced in what he's doing there and he's been on a bit of a journey you know he's started in uh you know 20 you know saved as a CEO since january of 2015 and it was launched in 2015 and and it's gone on a journey so far to where it is at the moment with that amount of revenue and subscribers so it's a gradually growing company but certainly recently it's been growing exponentially well which is good for potential investors and I decided to dig into some of the documents on the downloadable documents on the investors and point out a couple of really important excerpts because I want to bring the you know the most important information to you in a compact video for you obviously do your own research your own due diligence and all that but I just want to hopefully provide some helpful information here so I've found this excerpt of a of a transcript in one of their documents on the Fubur tv website where you can download some of their documents and it said that the full year 2020 revenue is expected to be 244 million dollars to 248 million dollars on a pro forma basis an increase of over 65 percent year on year so this company is starting to get to that exponential growth phase where they're actually growing the company massively year on year now they're getting to that point you know they've developed their platform from 2015 they've improved what the content that's on that platform they've already got a bunch of subscribers that are spending hours and hours a month using it and now they're I think they're really shifting their focus towards right we've got this content we've got that obviously got to keep updating the content but now it's time to really go for the exponential growth and market towards getting more subscribers and that seems to be what's happening based upon the data we expect our growth in 2020 to continue into 2021 where we are raising by now by 15 million our previous revenue guidance to a new range of 415 million to 430 million projected a growth of over 70 percent year on year 70 percent growth year on year so this company is got high growth every year and that's what it's aiming to do now and that's what it's focused on which is very interesting for an investor if they're able to meet those targets it's going to be massive and I'm telling you this is going to be a massive company if they reach these targets here here we've got an interesting other exit that I wanted to mention so say the team is very data driven okay and I think that's quite important there because they've got to keep an eye on how many subscribers are watching a specific amount what are the most popular programs that they've got on their platform what is the drop off rate for someone to unsubscribe you know what are the mechanisms you can put in place to keep subscribers and gain more and base that on data and evidence so it's good that they're data driven with that because they're going to make strategic solid decisions because you're basing it on their data that they've already got and they've already obtained okay so I think we said the company collects about 21 billion data points per month the team is ab testing on a daily basis it's sort of a marketing tool wait it's like a marketing technique that we've got another 400 landing pages with different offers so they've really expanded their marketing and that's why you're seeing that massive revenue growth is because they've got all these different landing pages to get like a click click-through rate into you know people subscribing we've also leveraged in the marketing channel to see where folks are coming in and where they are if there's any way for us to really do more than courting that allows us to bring really improve that attach rate but we're really happy with our current trajectory and we think that this continues over the long haul as we may have read in the shareholder letter we've also added stars and epics that's yet another way that we think we're going to be able to continue to drive attach rate okay so they're putting a lot of money in the marketing and there's a lot of emphasis on the marketing and and that's how a company gets more sales and revenue is through you know that aggressive marketing with with putting loads of money into it and you know trying different ways as well so they're not just produced a tv ad let's put it on tv they've got 400 different landing pages with different offers so they're really trying to create specialist niche marketing it seems from what they're doing there which is really good so what are the benefits of the company as i've mentioned there just now okay is that it's data driven in terms of its it's based in decision based on the data that they're getting in which is which is really important they make the right decisions from that hopefully and then you've got a growing industry so this industry of you know streaming online is a growing industry so with that in mind there's got a potential for growth as more as the industry grows overall but also as fuba tb increases market share within that industry and also it's not directly competing with your netflix and some of your other sort of streaming services because this is very much focused on sports related content and mostly it's focused on some of the stuff but that's mostly their focus so they're not although you know they're not directly competing with particular other streaming services although they are a little bit in a sense that they have both streaming services but that gives them it makes them stand out it gives them a competitive advantage to have focused on particular types of programming it's scalable because it's digital content they can scale this up massively and continue that massive growth it's got a good reputation and obviously a strong loyalty in terms of the customer base watching many hours of the programming so they've got a good reputation in that sense it's got a good base to build on in a sense that it's already got a load of subscribers it's got cash it's got revenue it's got its marketing in place it's got its programming in place it's a good base to now build on to build that exponential growth it's also got an experienced leadership team there as well which is part of who will be driving that growth forward as well so just what's the price at the minute so it has actually took in a dive it it really did shoot up massively and and it you know is ridiculously massive kind of it's kind of shot up here so it was it was trading you know around here like 27 something around there and then it shot up past towards 60 okay and now it's come down towards 4180 so this is an incredibly volatile stock at the minute and and that's that that's that can be a good opportunity because if it dips due to too much panic selling you know people see the stock price going down they don't have strong conviction in the company and they've just panic sold and if enough people do that that provides opportunities for us who do our research to actually buy into the stock at a good price so it's already here i actually put in a tiny position before close okay and i was i was about 44 but it's actually gone down after ours even further to 4180 so what i'm looking to do is here i'm looking to average down here um so let's just go first look at something uh here as to why this stock price has gone down significantly um so you've had some stock analysts basically trying to say that this stock is overpriced okay you had light shed partners analysts pegged at eight dollars per share price on the stock um okay and um need him and co-analyst analyst Laura double their price target on the stock from 30 dollars to 60 dollars so the analysts are a bit all over the place in terms of this and because of that uncertainty on on on that that's why partly there was a drop is because there was people trying to say that it was overpriced the share okay but this is where we're at at the minute and and this is in terms of seven analysts okay and this is where they have it at so it's a low of $24 okay it's at 43 at the minute but they're saying it's a lower of $24 medium of $40 and a high of $60 okay so so that's what they think here now what i'm thinking is if this goes towards the low 30s certainly high 20s i think that that is a massive buying point to start buying a lot more shares like i say i've only put in a small position but if it starts to go down to these low 30s i'm going to be buying in in this stock i'm even put a bit more of a small position on when it goes to the high 30s and then just buy on the way down a little bit okay but i think that this stock has got a lot of potential as i've said we've gone through all the funda we've gone through some of the fundamentals in this video we've gone through some of the research so hopefully that was helpful video but certainly i would say looking to getting into this stock either a small position on the low low high 30s or a or a larger position on the low 30s to high 20s i think that ultimately this stock is going to have exponential growth as a company which in turn is going to impact the share price as well so thanks for watching this video leave the video a like and i will uh and subscribe to the channel if you're new we do loads of stock market video presentations we cover penny stocks or sorts of stocks in terms of any any sort of research and i cover the ones that subscribe is one as well so thanks for watching subscribe to the channel and i'll speak to everybody later


Hi everyone. Happy Wednesday. I'm Joe for jaspyscasebreaks.com coming at you with the 2020 cops chrome update baseball sapphire edition four box Random team break number two one spot gets you two teams all card ship Big thanks to these folks right here. Let's double you up like sir mix slot. Oh double up All 30 teams are in let's roll it. Let's randomize it three and a six nine times for each list one Two eight and ninth and final time after nine we got Darren down to Cynthia three and a six nine times for the teams one two And ninth and final time Indians down to Rangers Darren you've got the Indian Cynthia with the blue jays Adam with the Astros Matthew You got my Dodgers Chris with the Nats David with the Cubs ran you with the Tigers Matt with the Phillies ran you with the Rays and the Pirates Adam with the M's Darren with the Mets ran you with the Twins David with the Royals and the Orioles Matthew with the Angels David with the Giants Matt with the Braves Adam with the Rockies Chris with the Yankees and No, Chris C with the Yankees Chris P with the Red Sox Matt with the Padres Adam with the Marlins that Matt with the Diamondbacks Matthew Shear with the Reds Chris Phelps with the A's Mike G with the Cardinals Matthew with the Brew Crew Mike with the White Sox and Cynthia with the Texas Rangers Let's get all this on one page. Let's sort by column B by team Let's box these up right here That should there's the checklist right there. We'll drop that into the chat I'm gonna pause the video when we come back We're gonna see if there's any trades and then we'll have the four box break stick around All right, welcome back folks There's the final printout right here four box random team to sapphire edition of 2020 top scone baseball You're on February the third It's fab already Thanks, everyone hot off the presses. No trades not even a whisper of a trade this time Let's roll. There's some odds right there. Keep them tracked. Let's open a couple of boxes at a time. Good luck, everybody I don't know if there's That's the latest baseball news. Let's go to MLB trade rumors.com. Let's see what's going on here Top stories according to MLB trade rumors.com twins to sign Alex Colomay Shoring up the bullpen D-backs Joaquin Soria agreed a deal Red Sox signed Garrett Richards Brewers to sign Colton Wong twins to resign Nelson Cruz Angels acquire Alex Cobb are the angels just getting the Baltimore rotation from a couple years ago Raised signed Chris Archer Reds and Sean do little agree to a deal Padres extend extend AJ Preller Red Sox signed Kika Hernandez. Take care of him. We love him as a Dodgers fan. I Know Oliver. I know right they're related somehow Yeah, now you have to get now you get us Soria D-back jersey Are you getting are you getting a jersey for every team Soria is on? Is that the plan? Orioles signed Felix Hernandez to a minor league deal You're trying to that's not a bad Not too many not too many Soria is in baseball, right? All right first couple boxes. Good luck everybody This is random team two renting three already in the store I think we only have a few more breaks available for Sapphire after that. So so get it while you can Clayton Kershaw purple. Yes two out of ten Nice that's for Matthew Shira and my Dodgers. Oh nice Our Azirania for Randy and the rays Nick might have like a list of Okay, it's just that we need want to pull from there and our first autograph is Willie Castro For the Tigers, that's gonna be for Randy as well We go Randy So Soria has been on the Tigers. I don't remember him on the tiger I remember I'm on the A's and Royals and I get an all-star batting jersey And now you got to get a diamond backster is he now Soria collection Matthew Shira angels. It's Kyle Lewis Rookie of the year Hopefully he keeps it up in a second year I'd be hashtag good for the hobby. That's for Adam and the Mariners last spot mojo not numbered. There is that number? No, it's just a different background here, but that's a high road Diaz is pooholst. That's number. Look at that David Ortiz Red three out of five Whoo red for the red socks Chris Phelps with the Boston Red Sox That is nice part of the 2010 home run derby Did he win that one oh That is his lone home run derby title right there There you go out of fives and under ladies and gentlemen get the world-famous train whistle Chris Phelps All aboard the Big Head Express I Won't say that for picture time too. That's a nice one and your autograph is gonna be Jake Fraley for the M's Adam Wilson last spot mojo 60% of this time strikes 100% of the time those are the first two boxes here are the next two boxes Good luck everyone So those red out of fives Are one out of every hundred and thirty packs Wow So pretty rare Considering there's oh, sorry considering. There's only this many packs per box Eight so what's 132 divided by eight how many boxes is that how the math works? All right next two boxes opening up a Orioles once again sign and re-sign a They not re-sign, but sign Felix Hernandez King Felix to a minor league deal Indian to sign Brian Shaw Keith Hembrey To the minors is a deal right there Gerardo Para Signs a minor league contract with the Nationals Angels claim Robel Garcia Brewers to sign Colton Wong Where's where's Trevor Bauer going? What what's going on here? Doesn't Trevor Bauer need a job as of the 28th of January according to MLB trade rumors comm While free agent right-hander Trevor Bauer and centerfielder Jackie Bradley Jr. Have frequently been contact connected with the Mets in recent weeks. No agreement appeared imminent in either case The club is quote far apart from deals with both of those players says Andy Martino of SNY The race for Bauer could come down to the Mets and Dodgers tweets John Hyman from MLB Network Who adds that the Padres also showed interest before they acquired you Darvish Blake's now Joe Musgrove and separate trades The Padres presented a three to four year offer to Bauer, but that quote didn't fly according to John Heyman I don't know if the Dodgers didn't give him the years either But he's looking for five or six years Everybody's got to go somewhere There's Mike Trout for the halos Matthew Shearer There's a green Giancarlo Stan 45 out of 45. This is still Marlins edition right here that goes to Adam Wilson in the fish. We've got We've got Kwan Hyun Kim Kim Kwan Hyun for the Cardinals Mike Krasinski with the Redbirds Another Arizerania we got some purple coming up too. That's Cole Calvoun Purple that's a low number eight out of ten Matt Lieber and the Arizona Diamondbacks snakes. There's another Arizerania for Randy as well and the autograph is gonna be For the Rockies That's Jesus Tinoco For Adam and the Rockies Adam Wilson there you go another Mike Trout Logan Forsyth, Verlander, Joey Vado and Jarell Cotton and there you have it. That was four box Random team number two Of 2020 tops chrome update baseball sapphire edition ladies and gentlemen, thanks everyone for getting in We've got another four boxes in the store right now. There's an Ottawa box some nice low numbered stuff Look at that some pretty cool stuff right there. That's three out of five big poppy Big hits go chase them on jazfyscasebreaks.com. I'm Joe and I'll see you next time for the next break


Hey there friends! Thanks for checking in. Today we're looking at the new Stoker STR9. New for 2019, Stoker entered the handgun market with this STR9. I did not even know it existed. You guys said, hey, Stoker came out with a handgun. It's called the STR9. You need to check it out. It's a polymer frame, striker fire, compact size handgun that's selling for under 300 bucks. So I did. I looked into it and I said, yep, these guys are right. I picked one up, went right to the range. So I did a range review first and I left impressed. You know, with a center hold, I hit my targets. No problem. It felt comfortable. It was reliable. Everything fed, fired, ejected just fine. I ran some steel case through it. It performed outstanding and it felt like a higher end gun that is priced very affordably. And then I, I don't know man. I just thought I was very much impressed. I guess that's just the way I should say that. Now it does come in various packages. This came with one mag, one backstrap. They have other packages, two mags, two backstraps. They have another one that includes night sights and that's, all depends on what you are willing to pay. But the features that they have with this gun could be cheap, but they're not because it does have steel sights, right? Nice little lip there so that you can charge the gun off a belt or a boot or something like that. Steel three dot sights, adjustable, a loaded chamber indicator bar that pops up there, full 1913 Picatinny rail, nice fronts and rear serrations. It looks sharp, but it's actually not.  The trigger has a trigger bar safety in there. I measure it right pretty consistently, six and a quarter pounds, sometimes it was six and a half, but we're looking at this right here. All right. You can feel that, that bar and there's your reset. So about halfway to full position, I would say right there, not very audible. So let's compare it with a Glock 19. Everybody's familiar with a Glock 19. All right. So we're looking at that. Now, if you look at the slide length, both four inch barrels, you can see that it looks like the Stoker goes a little bit longer, but that barrel just sticks out just a hair to make it pretty even. And then with the grip, the Stoker does go about a half inch longer on the grip. It gives you a sense of a full size gun when you grip it. Here's a Walther PPQ. All right. And then we'll look at the slide length here. We'll see the just a hair longer with the Walther and then a little longer with the Stoker grip. Once again, both these other guns hold 15, 15 rounds. And then the disassemble is just as easy, just as easy as those. It does have a sight hole indicator there, but we'll pull the slide back already show clear. Take these takedown tabs, pull the trigger, and off comes the slide. There is the frame. And then here we have a captured recoil spring and a steel guide rod. 4.17 inch barrel. Look at that. Not bad at all. I have to say guys, now it does come in this cardboard box here, all right, with the Stoker logo in the box, paperwork, lock, and speed loader. Not going to open the box and say, Oh, this is what it comes in the box. I don't think you guys much care to you care, but you don't need to see every last thing. So here we go. Here's the weight, unloaded weight, one pound 10 and a quarter ounces. We move that to just ounces 26 and a quarter ounces. Let's go ahead and compare that with a Glock 19, 23 and three quarters ounces. So we're looking at a lighter Glock 19. Let's check out the PPQ 25 and 38. So that's that's actually closer 26 and 38. So one ounce heavier with the Stoker. All right, so here we have 15 rounds that you know, I didn't mention much about the mag, but you can take a look at that. It's got some nice ridges in there, sight hole indicators in the back. Some people were complaining that the the mag done drop free, certainly does with mine, but it is loaded. Let's go ahead and turn the scale back on and we'll see that the loaded weight is two pounds, five eighths ounces, 32, five eighths, carry round 33 and one eighth. That's the loaded weight. There it is guys, very impressive. I took it to the range and shot really well. I felt comfortable like right away. I just turned the camera on and just started shooting. So everything that I shot initially is what you guys saw. It felt comfortable, even with the one hand of shooting, total confidence with the Stoker STR9. And I'm glad. I'm glad they entered the handgun market. Now I know a lot of people say, well, we'll be another nine millimeter. Well, you know, when I went to shot, that's all I saw was all the new releases were nine millimeter, like one after another. So I'm glad Stoker entered the market. I'm glad that they came out with this STR9. I'm glad they price pointed it where they did because I think the more people check it out, the more they experience it and the more reviews they see, they will be impressed with everything it has to offer for a budget priced nine millimeter handgun. I guess that's the best way to say it. And there it is, the Stoker STR9. I'll be comparing it and bringing it back out as time goes by. I think the more you look at it, the more impressed you will be. If you like videos like this, please subscribe and share. I always appreciate thumbs up button. Thanks for watching and you guys be safe.


Now, before we get into everything, Harper, I wanted to share my story before she was born. Now, my husband and I, we have four beautiful girls. Our youngest is five years old, so our lives were getting pretty easy. But we always kind of felt someone was missing. Now, my family and my husband's family thought that we were all done having kids. So, their reaction was pretty fun when we told them that we were having another one. Kristen, look at me now! Now, we had four girls, so we were pretty excited to see what would happen with this fifth one. And lo and behold, another girl. Now don't get me wrong, I have five sisters. I can do girls. I was nervous to have a boy, so we were thrilled that it was a girl. Now, I would mention my pregnancy every now and again, so you guys could kind of follow along the journey. But on February 7th, my husband and I, we woke up at 4.20 in the morning because we needed to be to the hospital at 5. Now, a few days before that, I was having crazy contractions. So when I got to the hospital, I was actually at a 5. That being said, once they got the epidural in, our sweet little girl came rather quickly. Now, because of the rules of the hospital, our girls actually weren't allowed to come into the hospital room. But thankfully, it was ground level, and so they got to see her through the window, which is actually one of my favorite memories. So we left the hospital about 24 hours later and brought her home to the sisters. Did she sound the handle? Did I do? Oh my god. She doesn't like me very much. Now, all the neighbors knew she was coming soon. So we have some fun Christmas lights on our house that you can change the colors. And so we told them all, just watch for the flashing pink lights. And that's when you'll know that she's here. Now, the next few days were pretty crazy. We actually went back into the emergency room with some blood clots. Then my 12-year-old traveled down to Southern Utah for her soccer tournament and broke her arm there. So it was a very busy week after Harper was born. But since then, we've settled in and we have absolutely loved having her be a part of our family. And I only have to remind Sarah a few times a day that Harper is not a doll, so we must not treat her like one. Thank you so much for joining me. All right, everyone. Thank you so much for joining me. I'll see you next week. Bye.


Let's talk. Let's talk. Hello and welcome to a new season of Let's Talk. My name is Sunil Neptune. In today's program, we speak on school guidance counseling within the education sector. And with me to discuss this topic is the coordinator of guidance counseling, Joyce Lynn Eugene. Welcome to the program. Thank you. First of all, before we begin our discussion, can you tell us what is guidance counseling? Guidance counseling refers to a program that is being administered to students in schools. But it was specifically designed to help students transition into their career and into college level education. However, this has changed a little bit. And we are now focused more on school counseling, which is a much broader area that it covers. OK, and you mentioned that it's a much broader area. What is different with school counseling right now? School counseling really embraces the personal and social development of the student, the academic needs of the student, and also their career and college readiness levels. With the guidance counseling, it was more directed towards more of the college and career readiness. So this one now has more of a holistic approach towards counseling within the education sector, within the school framework. OK, and what is the genesis of such an initiative? How did it start? There are a number of years that there were no school counselors. There were no counselors in schools. However, Ministry of Education started the program in 1992 was when the first guidance counselor, because that's what we referred to her as at the time. First guidance counselor was appointed at Cassie's Comprehensive Secondary School in the person of Mrs. Virginia Dauvain. Since Mrs. Dauvain, three other counselors were put in specific schools. Leon H. Comprehensive School is Josephine Romain. We had not Clinton Mason, sorry, George Charles Secondary School, Mrs. Kashina Emmanuel. And Viewford Comprehensive School, Mrs. Patsy Paulette. So these were the first persons who were employed by Ministry of Education to provide counseling in those four secondary schools. And has it been proven that what it is now is better than what is obtained in the past? Well, when we talk about proven, I'm not sure what we would use to prove that it was better. What I can say is that since that era, we now have 31 counselors operating within the education system. We have eight education district guidance counselors, one per education district, and then we have 22 secondary school counselors. Each secondary school on the island has its own school counselor. So in that way, it is more efficient, it's more effective. And well, I guess the services that are provided would be what would help to prove the efficiency of that program. And you mentioned that there are district counselors and also there are school counselors. What is really the job of the district counselors? Is it a lot different? We know it would be a lot different from the school counselors, but what is really the job of the district counselors? The district counselors provide the school counseling program to the primary schools. But also they supervise the work of the secondary school counselors. So really and truly in each district, that one district counselor has responsibility for the counseling needs of all of the students within their educational district. Great. And what are the objectives of the school, of school counseling, well, guidance counseling? Okay. When we talk about school counseling, school counseling really has to meet the developmental needs of the students on an academic level. So we are guided by a framework that has academic standards and competencies where at each developmental level, that's the student from K to 12, grade K, that's kindergarten all the way to 12, which would be lower six and upper six of your A-level program. Each of these students, they have various needs. So the school guidance counseling program works together with the other education initiatives to ensure that these students are meeting their milestones, they are growing developmentally in terms of their personal social development and that they are exposed to programs that will help them think about their future, their career and so on at the different levels. That's what we do. With all of those duties and those responsibilities of a counselor, what is required for one to become a counselor? Well, a school counselor, we require a master's in school counseling. Of course, a person may have a bachelor's degree in behavioral sciences, a bachelor's degree in psychology and so on, but that must be talked of with a master's in counseling and of course, preferably school counseling. Okay, wonderful. We are due for a break. So when we return, we will definitely continue our discussion as it relates to what is required for one to become a guidance counselor. What's in the food you're eating? Do you really even know? All the chemicals and hormones used to accelerate their growth. All the artificial flavoring, sweeteners and colors too. We consume and we don't spare a thought for the damage that they'll do. No. Think about the children. How will we save them? Chemicals and GMOs are not the solution. Use organic and join. Excessive agrochemical use, additives and genetically modified foods are harmful to health and the environment. Join the Good Food Revolution. Grow, buy and consume organic. A message from Rye St. Lucia and the Ministry of Sustainable Development with funding from the GEF Small Grants Program, UNDP. Good food, good food, Good food revolution. Welcome back to Let's Talk. We will continue our discussion with a Joyce Lynn Eugene on school guidance counseling. Before we took our break, we were discussing in terms of what is one expected to have in order for them to become a counselor. And we will mention in the qualifications. But besides needing a master's in school counseling, what other qualities would one need to become a guidance counselor? Okay. When we're talking about counseling and school counseling, we're really referring to relationship. So really and truly, the counselor needs to be someone who has a good rapport with people. That person must love people and really be interested in, you know, seeing a person develop, seeing a person flourish and seeing a person find ways to resolve the issues that might be impeding on their growth. So we want someone who embraces the value of genuineness. You want a person who has respect for other persons, who has a high level of integrity. You want someone who understands the value of confidentiality. That person has to know that their role is to protect the integrity of the client at all times, regardless of the age or the stage of development of that child. Yes, and for sure, confidentiality is very important. And with all of those things that a counselor will be bringing to the school, what are some of the challenges that the counselor sees on a day-to-day basis? Wow. We have a number of challenges. But I think one of the main challenges is that a lot of persons have not yet understood what school counseling is and the role of the school counseling in the school. And so because when we don't have that information, it creates levels of disrespect and so on that counselors face. And also you have situations where because persons don't understand, they do not regard the value of school counseling. Outside of that, you have, of course, issues where in dealing with sensitive situations with children, of course, you have to work with parents. And sometimes you do not have the cooperation of the parents because, again, a lot of the times, they're feared situations. People are more fearful when they know they have a problem, when they have an issue, and when another person is trying to intervene. I think there are levels where cooperation and collaboration could be even more effective with regards to other service providers that it creates frustration sometimes when we're trying to work with a student, when we're trying to get the student the help they need and it appears that the response is not being done as quickly as it should be for the well-being of the child. Great. And we know with the guidance counselors, whether school counselors actually doing their part in the school, are there any other agencies that the counselors would have to work with in order to help them solve certain problems? Definitely. One of the things I would like to help us understand is that school counseling functions within the framework of the education system. And when we spoke about the goals, the counselor has the responsibility to help that child successfully navigate through their life at school. And so their focus is not clinical counseling and therapy as you would have from a clinical counselor, but more to guide the students and to get them back to focus on the academic development and how they can get through successfully in school. That's really what it is that we want to do with the student. We know as they help the students, they also have to work with the other agencies. So we have human services, which of course, child protective services. We work with human services. We work with probation services. We work with family court. We work with medical doctors because there are times you have to refer to a medical doctor. We work with the wellness center. Any service that can be provided to assist and to get the child to a better place or to get them the kind of service that they would need so that they can function more proficiently, we work with those agencies. Great. And can you give us an idea as to some of the programs initiated as to grow guidance counseling or you can say school counseling? Okay, when it comes to the primary schools there are a number of programs that we have we have introduced and implemented in schools to assist with the counseling program. So for example, you have a pre-referral intervention program which is used at the schools, primary schools especially, where issues that may come up, the teachers, the principal, they have a guideline that they can look to to assist them in how to problem solve some of these issues before they would make a recommendation to the, a referral to the counselor because one of the challenges we have is that whenever a child is going through an issue, one of the first things people think is send them to the counselor. It really ought not to be that. It has to be that when everything else has been used to assist this child then it may need the intervention of the counselor. We have a second step program which is introduced to its violence reduction in schools and so on and to teach children basically character building skills. We also have a YTRI program that is used in some of the secondary schools so that students learn decision-making, they learn tearing off labels and that type of thing, dealing with bullying and all of those different experiences that they have affecting them in the schools. Wonderful and we can definitely see that guidance counseling is definitely an integral part of the education sector. I want to thank you so much, Ms. Joyce Lynn Eugene for being part of our program and we want to wish you and your team all the best for the, for guidance counseling at the schools. Thank you. Thank you. Well, that's how we come to the end of Let's Talk for today. On behalf of the entire production team, I am Fiddle Neptune. Thank you for watching. Until next time. Let's talk.


Hey Abbott. What time is it? It's time for the Abbott and Costello show. We're on the air for ABC here in Hollywood Well, what are we waiting for? Let's go with the Abbott and Costello show It's the Abbott and Costello show produced and transcribed in Hollywood. Be listening and laughing pleasure Chuckles with a carload and music by Maddie Malning. So hold on to your chairs folks for here. They are what Abbott and Lou Costello Why were the cops chasing you? I had it in the back seat of my car You and your whole family are always in trouble with the law. I guess you're right Abbott No, I guess you're right. Yes indeed. He joined the last one my brother Pat got a recipe cause he forgot to register for the draft He forgot to register. Yeah, he was too busy milking his cows Milking his cow? Mm-hmm. He should have been at the front. What for a milk was at the other end?  Please don't say that Abbott. It isn't my fault. I had a very sad home life He did. I did. I was born on a street car and I never saw my motor Why why not?  A what-so? A schizo. Ski, skis. Haven't you ever experienced a schizo Freenian? Yes. The first time I put on a pair of skis. I fell on my freenia Don't bore me out Abbott. I don't feel so good. I went to the doctor and he told me I was a sound as a dollar Well, if you're a sound as a dollar then why are you feeling so bad? Do you know the shape the dollar is in these days?  It feels pretty good once you're used to it Well the high-grade nonsense you'll be hearing for the next half hour before we get back to it listen to this He said give me your money or you can get along without brains, but you got to have money Some girl from the Burbank theater must be she makes a thousand dollars a week. Oh, that's ridiculous How can a bubble dancer make a thousand dollars a week? Big girl small bubble.  Are you sure that that miss lapoo loves you? Oh, sure Have if you do anything for me. I'm so much that she goes out with other fellas so I can get the proper rest Do you think you're Mariah? Nope. We got different ideas about marriage. She wants to have five boys enough for a basketball team Well, what's wrong with that? I'm a football fan myself Tell me is it is there a school for morons? Oh, sure. There's a school for morons. You mean you didn't know it No, I didn't hmm and all the time. We thought you were playing hooky. All right Tell me you'll be the death of me yet. What was that?  What does he look like? He's a skinny guy three feet two inches tall and weighs 520 pounds just a minute just a minute How can he be skinny and weigh 520 pounds?  What's the matter with my wife walking in here with a rubber player growing out of her head? I What's the trouble? Well, you know that box of matches you gave me yesterday for my mother is well She can't light them. Well here. Give me the box. I'll show you how to like look I just strike them on the seat of my pants I know but she can't wait for you to come over to the house every morning when she wants to light the stove Get out of here and get himself a job normal when I was your age I was working in a store for three dollars a week and in five years. I owned the place Yeah, but you can't do that nowadays Uncle Louis and why not now they've got cash registers That's you folks And at the end of the season we're gonna send them to the Harvard Medical School in a bottle and student of history But right now he's studying about the Egyptian pyramids What's that? Well, they're great big things made out of concrete that took thousands of men to build them Hundreds of years to finish them and by the time they were finished It cost millions and millions of dollars in Egypt. They call them pyramids We've got the same thing right here in California. We call it the Hollywood freeway Talking about pyramids you see those cars on top of one another. Yeah Jokes vinks, don't it? Yeah. Yeah Well, I gotta go now. Well, that's fine How do you get along with all the girls wonderful?  Yeah, but if you saw these girls, you'd be overdoing it, too What's your job with the orchestra? Well, I'll tell you I'm in charge of the girls shallow section. I'm the head bender head bender Yeah Every night when they get to play and I help get their legs back in shape dangerous work Lou Well, I'm used to dangerous work habit in the summertime. I'm a high-wire walker in the circus Do you use a net? No, my hair is just naturally curled Have you had any other jobs working on women? Oh, yeah, my spare time. I'm the intern at the movie studios I treat I treat stars when they get hurt or something. Well, are you kidding?  Hey with fated on the set now, how would you go about reviving her? Well, I put my arms around her and I hold her close and then I smutter her with kisses What what good will that do her? I don't know about her, but it sure would do wonders for me Well, look I sell it's our singing star Marilyn Williams I want you to know that we're very happy that you came over here from England to sing for our show I think you're wonderful. I thank you, Mr. Abbott in England. I was considered just another canary What a canary? How do you like that over here?  I'm wearing it's called Roy Rogers number five Why yes trigger comes through just as clear as a bell I'll take you away from all this. Oh, but I'm very happy Lou. I have mink coats diamond rings Automobiles and thousands of dollars, okay, then I'll take all this away from you Down pay the attention to a Marilyn that wouldn't you let me take you out over the weekend Oh, I'm sorry I have a date with a very sporty friend of mine and if I go with him He'll take me to the El Rancho Vegas and let me play roulette He'll take you to the La Brea Toppits and let you pitch pennies I wouldn't I wouldn't blame Marilyn as he left this program and went back to England You haven't done a thing person since she's been with us Lou. Oh, no, no about that lovely big person I said you you mean that manhole cover. That was no ordinary manhole cover That one came from Beverly Hills Why don't you think it about costel? I'm the man for you you and I would get along together like ham and eggs That's a bit folks always put them so first with you and Lou But I wish you'd both stop fighting over me Marilyn's right. Gacela. You fight over like a dog fighting over a bone Brother when there's that much meat on a bone. I'll fight over it every time All let's forget about me boys, how are you making out on your new picture? Well, you see me that picture Marilyn. I played the part of a reckless gambler.  Oh, that's fine. If I'll think ever get stopped up. I'll give you a call Let's turn it on on our singing gal from England. Oh, that's great for us and it's great for everybody listening Here she is folks Marilyn Williams with Maddie Malmick's music from the new Broadway musical where's Charlie? Here's a song I like my darling. I've wanted to call you my darling Oh many and many My courage just Used to that name my For many and many Didn't played like a starling My courage just melted away Of a small job washing the windows of the course girls restaurant job Washing winners of the course girls dressing room. What could you see in that plenty after I get him clean? Mike got me the job.  Why was he invited to a big sneak preview? He's one of the biggest sneaks in town And he's also just like you always broke he is not my uncle Mike has a great reputation He can walk into any bank in Hollywood all he has to say is four words and they give him all the money He wants one of the four words.  I can't see it. Uncle Mike is the boss in this house Aunt may runs a kitchen and she tells the cook what to do. She tells the maid what to do and she tells the gardener What to do? What about Mike? He can say anything he wants to the cat Well, at least he's got some home life cuz tell her why don't you find a nice woman that that's the home time I got one last night. I said her. Let's go out for dinner. She said no Lewis I'll cook dinner for you. Now. I said how's about going to an eye club and she said no Lewis We'll stay homeless in the radio and save money. Oh, wait a minute. She sounds wonderful. But where did you meet her? My father introduced me to her. What what did he say? He says Lewis? This is your mother Yeah, tell me why don't you find a nice girl and and ask her to marry you I did have it I asked that little blonde school teacher next door to marry me. Then what did she say? She said that's my father. Well, did you ask her father? He didn't appeal to me I Mr. Costello, I've got a note for you This time he beat the door is Mr. Costello Costello got a note for you here. No for Costello. All right, take it Lou. Who's the problem Lou? It's a fan note from one of my listeners. Oh your portrayal of Sam shovel private detective on the radio is my favorite program It's so funny that last week while listening to you. I simply died laughing. I'm coming to the studio tonight. I Hope he gets in this time Mr. Costello is someone here to see you. Who is it? It coughs with a smile on his face I'm scared in half the people in the country today. What about the other half the Thomas committee will take care of them Never mind that. What is your same shovel story for tonight? It's one of my most famous cases I call it the case of the boy named Tony whose mother kept him locked in the closet or Tony's home permanent Sounds interesting. Well, let's get on with the case I'm Sam shovel private detective.  Don't rain me for so long It's notepaper I decide to clean up my desk and throw all the old bills into the wastebasket That was my light bill That was the water bill That was just plain bill Plants down at the desk there lies a full run of one of my early cases The case of the murders with a long golden hair I made a lot of money out of that case. She was a beauty I was dying to meet her. I spoke to her in Kansas City, but she gave me the brush I tried to talk to her in Cleveland, but she gave me the brush in Washington She gave me the brush in Buffalo. She gave me the brush.  He's a brilliant man. He hasn't spoken for three pages Now he comes on with a line bristling with yomer saying hello sam shovel Sam you're in why do you stay cooped up here all day? Why don't you hire a typist to do your office work? I had a typist lieutenant, but I had to let her go. She could only type with one finger. Why? She had only one finger She came from a very poor family. She had nine thumbs Typist with nine thumbs every time she hit that space bar the typewriter jumped off the desk Any new cases today sam? Yes, a guy came in here this morning and told me he shot both of his aunts He put six bullets in one of them and four bullets in the other and he wanted my advice well What uh, what you're telling them to do? I said go home and get the lead out of your aunts Sam I've got a case for you.  No matter who it is. I'll get it I saw her on the stage one. She came out to do her fan dance a mouse ran out in front of her and susie dropped her fans What happened the mouse fainted Well forget about that case sam how would you like to help me collect some evidence against waterfront lill I think her cafe on the river bank is a hangout for the smugglers, but I need more information I'll help you lieutenant have it. I'll go down there with you Hand me my fishing pole and that can of heat What do you want with the beat?  I'm a detective through and through Why I double cross my brother Hello sam get out of here before I double cross you. Who is that my brother? Now come on sam we're going to waterfront lill's cafe toughest part of town The hangout for tramps cut totes and vagrants Suddenly the exciting order of taboo perfume fills the waterfront air I wonder where it's coming from. It's me. I'm covered with taboo perfume. Who are you? Oh just a fragrant vagrant No matter what we give Abbott's nephew he gets nothing I Check every week Hey sam, there's waterfront lill cafe over there. I don't like the looks of that place lieutenant Why not sailor just come out of the door and he's walking down the street holding his girl's arm Lots of sailors walk down the street holding their girl's arm while the girl is still in the cafe We walked toward the cafe lieutenant Abbott was looking left and right he has shift the eyes He shifted him in a second Together we enter the sloon through the doors They were swinging doors They were really swinging tonight place was full of tough mugs a guy eight feet tall walked towards him He was a long shoreman. He was a long I just got it myself He'd just script once in a while Abbott He was the longest shoreman I ever saw He took a punch at lieutenant Abbott's chin Abbott has a glass jaw I wasn't going to stand there and let that man do that to my friend lieutenant Abbott This man was eight feet tall. So I hit him with a left. I hit him with a right I hit him with another left another right.  All right. Okay. Lil are you a smuggler? I'll tell you if you promise not to turn me over to the police I promise you won't turn me over. Why should I turn you over? You can't look any better on the other side You're so sweet Come here.  Oh, I'm sorry sam quick lieutenant call an ambulance. We'll take sam to the hospital No, no not the ambulance sam. Don't don't you don't you want to go to the hospital? Yes, but I ain't writing to no ambulance through that los angeles traffic A man can get killed that way out walk or quick get him out of here Some mad men aren't through with you yet right now. They want you to hear this Sam shovel tonight Thank you, but Abbott you're full of pep. Yes, sir. You you certainly were effervescent tonight Did you ever see me when I ever fussed? Ever fussed Now I know what happened to baron munchausen's writers. We've got them. Oh good night folks. Good night everybody Listen each thursday night at this time for another great Abbott and Costello show produced and transcribed in hollywood by charles vanda And featuring maryland williams and mary malnick and his orchids cross Be sure to stay tuned for the outstanding entertainment, which follows


So I've been working on this for a while and it's time. I actually formally introduce it because I happen to be very impressed with this project This is going to cover two separate assemblies that is in the dot-net world projects compiled into individual libraries That belong to the same solution and The original one was called stringier as it's sort of an extension library to strings in general So it kept with that name The other one is going to be an implementation of pattern combinators Not to be confused with parser combinators That was built sort of on top of this does use some of the Stringier extensions We'll get into that So first covering the stringier extensions library what is it and I think one of the best ways to start covering this is to actually talk about what it's not It's not a new string class. It is quite literally an extension library on top of car innumerables of car string and innumerables of string Now because it works on innumerables that means whether you have an array of car or string List of car or string or whatever as long as it's an innumerable. It will work on those So you've got your bases covered and this is going to be a non exhaustive Coverage of some of the extensions that it provides It's pretty minimal to be perfectly honest, there's a lot there I will have down in the video description a Link to the documentation website all this is on I highly recommend checking that out and it covers fees in considerably more detail, but Let's show off some of the useful ones. Well, they're all useful, but clean Takes any instances of multiple spaces and Reduces them down into a single space while also trimming spaces from the beginning and the ending So if you have you know the string hello world But with excessive amounts of spacing that you don't want there a single clean operation will reduce it down to a nice tidy hello world string Ensures begins with there's also a related insure ends with I wound up needing these quite a bit And found it's much easier to just call this instead of check if it's there and then Do the appropriate thing if it is or isn't so Ensuring that mister is in front of any name It takes Bob Saget and returns mr. Bob Saget, but if you've already got mr. Bob Saget It just gives you back mr. Bob Saget I have listed here just for string array the join works on any I numeral so It's not specifically arrays In this case There already is a string dot join however it This was before extension methods were a thing and so they kind of had to do that where it's inside of a From the C sharp world a static class from the visual basic world a module And I added this in here to just kind of show that a lot of these things that were in these modules before You can call through extension methods now just Kind of makes it more one orthogonal and two kind of convenient to see what's there since when you're Working with any of these languages Primarily do it through extension methods and if you don't see the or not extension methods but you primarily do it through methods and if you're You know going through seeing the instance methods, and it's not there. It's actually a static method belonging to a static class It can be easy to forget that these things are there So this just kind of helps with that and I've got the example there for anybody who doesn't know what a join does but Most of you are probably aware Then there are some utility things like occurrences Which just simply counts the occurrences of whatever you specified in this instance the single character that you specified and Because these are useful the conversions are a little bit trickier than some people expect We've got two camel case where it takes a string and converts it to camel case To pascal case is another one although there are others as well Just to kind of expand beyond just to lower and to upper So then some ideas for future work Right now as I had explained these are only working on car I innumerable of car String and I innumerable of string It would be nice to make these Take spans of car as a parameter and also return spans of car as a parameter now. I suppose I'm pretty sure the span already implements. I innumerable I might be wrong there, but just because of specifically what these are it would be a good idea to have a Specific implementation around it to kind of cut back on the amount of copying or allocations or other things that the more generic Methods would actually have so then getting into the real meat of this presentation is The patterns implementation and stringers so what is this exactly? What is a pattern combinator? And again, I think you'd be a good starting point to say what it's not It's not regex and I think I forgot to add this in here But it's not a parser combinator either This is quite a different approach and this why I'm explaining it here. I Did remember good on me So now what what is this? it takes inspiration from Snowball 4 spitball and Unicon in my instance primarily from Unicon but Unicon ultimately comes from spitball 4 or Snowball 4 and heavily inspired by how they did parsing because it was I find a very elegant approach But I need to add some further information about what this is is not and It's not a snowball clone. It's not Copying that approach. It's inspired by it, but it is not the same approach So why do this why? Create a new thing And regex sucks say we have a regex for matching a name in this specific instance Really just any word followed by an optional amount of spaces in other words Would handle many cases of names although I'm sure someone's name out there probably violates this But then you have a closing statement like a closing statement for a letter where you you know you sign off and I'd like to combine these I want to do This the Sincerely followed by the name that I had already written Followed by a comma But instead I have to create an entirely new regex with everything contained inside of it Now just to be fair because I know somebody's going to bring this up you can Save parts of the regex as independent strings and string can cannonate them. There are Issues with that like having to remember Downstream when you're actually using the declaration that you had before Whether or not you need to add weren't boundaries or not And you have to be careful for a lot of reasons. It winds up being quite fragile Really just regex was not designed around Any kind of don't repeat yourself or usability in any way So that same kind of example using patterns The name declaration is exactly the same We'll cover exactly what these different operators are Really soon, but this is just to sort of show the general comparison the closing statement The closing pattern rather What's up working? You do exactly what we want to do And it winds up basically being the same comparison Some of the internals are slightly different, of course, it's not the same thing But it's basically the same comparison and in these instances everything is so similar that it's pretty much one-to-one comparisons and This is clearly a reusable approach now just to address something on This this idea that patterns died out There is actually quite a list of Snowball for or spitball inspired pattern libraries There are even a Language group a small language group, but a language group inspired by these So some of the concepts behind this a literal is Just an exact match and as you can see it's declared by just assigning it a string as if it's just a string As long as the language you're using does implicit conversions this works I do have in that documentation I alluded to earlier Examples in both C sharp and F sharp. I find just given how this works The C sharp and visual basic implementations are pretty much identical So you don't really need to know you don't really need the additional Examples for visual basic, but the there is F sharp specific support for this Partially dealing with the fact that there aren't implicit conversions in F sharp partially just making it more of a functional friendly design and There is some more I want to say about that later You'll know when I get to that, but just keep in mind for now that much like regex You can use these patterns in any language It's not a specific implementation So then we have the alternator Basically just match either of these you're defining the second choice as an alternate of the first And it's just done by an or statement Chained match or concatenators. I see I used the old name I had here when I was originally implementing it That's my bad. This should say concatenator But it's just chaining them. So the first before the second before the third or conversely The second comes after the first the third comes after the second Repeating matches just saying it has to happen this amount of times I do have planned making this work with the new net range type So saying that it must happen between this and this other amount Right now it's just on the specific amount There's also the spanner which What I'm calling it, but it's repeating it but repeating it one or many times You'll find and most cases these are very very similar to the regex definitions and I'll cover a little bit more about this, but basically it's because the design of this is You describe What it is that you want to parse You describe the match Not how to do it and that's what regex does and it's different from what parser combinators do Optional same kind of thing I do want to say that in this instance the regex this works because it's declaring that it's lazy That it should be lazily parsed or lazily matched or however it is they describe that The pattern does not quite work the same way, but Based on how most people use it. It's it's the same kind of thing and in fact in the regex example I gave there it is the same thing where that lazy symbol the question mark actually Differs is when you put it behind like a dot star and then the question mark then it's changes behavior quite a bit and The next example will cover a little bit about that Wait, I think the next examples on kids well, it is okay, so What about the clean star because I don't have a specific symbol for the clean star? You just make a spanner optional and it just it does exactly what you would think it does Just to kind of allude to one of the features of this There are some hitfalls like if you were to reverse these by making Example optional and then spanning so you reversed the operators. So it's plus minus example that actually winds up creating an infinite loop when parsing and That is caught at construction time so when you define the pattern when the Runtime goes in to initialize that variable it will throw an exception there fully Explaining exactly what was wrong So it will catch that issue and tell you that you probably meant to write those the other way around Capture and back reference so this one is on the capture part of it and Basically, you just call a capture method and have your output with the capture type the capture type basically being a string Just with some trickery to make it lazily resolved Because that's actually important when you go to use it as a back reference For the actual back reference side of this you just take that output result and throw it back into a pattern and because of lazy resolution It winds up working quite well so Those of you who watch my other videos know damn well that I care quite a bit about performance and Don't think people measure it anywhere near enough In fact a big gripe of mine is the large amount of programmers who love to say things like oh Our solution is really performant and lightweight But you have no Evidence, I'm not doing that So let's get into this. I've benchmarked these extensively and these benchmarks are in the repo So if you want to run them yourself on your own machine Go right ahead. I Want to see any variations any oddities. I Don't want to pretend that I outperform these others implementations of Text parsing matching Whatever you want to call the broad group. I don't want to say I'm better than them or whatever I want it to be very very clear How these stack up so when it comes to parser performance So this is specifically you already have the pattern or reg X or parser combinator thing Done. You've already Initialize that to a variable. This is the performance of when you call the reg X dot match the Run for the parsec or Any of the parsers that the my my approach works with There was no section on that technically there are different Because of the separation because what you're defining is a pattern There's different parsers that can be called on that Again check with the documentation There'll be a link That'll go into far more detail, especially since I don't want to cover them too much here because I don't know how many more I'm going to add But basically as you can see the performance of this stacks up pretty well Defined the performance of Microsoft's reg X implementation tends to lack quite a bit although it's not Terrible like generally speaking at parsec beats it out, but it's it's not terrible But overall you can't see a whether I'm a clear winner or loser. It's just kind of I'm competing One thing to note. I am not super familiar with F parsec. I did not want to create Misleading benchmarks For things that I could not figure out how to implement well or could not find a good implementation of already So I left out the web address and IPv4 address Implement benchmarks, so you will not see them for this I'm sorry if you know how to implement those well in F parsec, please add them to the benchmarks I don't know. I'm not going to mislead people so the next thing is How much memory usage occurs while parsing and you can see that F parsec uses up quite a bit Microsoft's implementation is a bit more lightweight as far as memory goes and in What two cases? I'm competitive with Microsoft's and One case Microsoft beats me out really badly I'm pretty sure I do not have an optimal description of a web address pattern Yet that's sort of a pitfall and using a new design this I don't necessarily know the best way to use my own thing But in two cases I'm using up Substantially less memory I'm quite happy about that One thing to note is for the phone number while it looks like I forgot to do the benchmark or whatever At least on my machine. It doesn't require any memory allocations to do that So That's cool. So then we got into How much time is spent actually constructing these? So that is when you assign the reg X or the pattern or whatever to the literal How much time does it take for the for the runtime to construct that object? For both my own and F parsecs, it's pretty efficient actually Doesn't take very long at all. I beat that parsec by quite a bit and Reg X is just oh my god like it takes quite a bit more time now While this might seem quite alarming You only initialize it once and you're probably using it multiple times. So it's really not that bad Don't use this as your primary factor with deciding what approach you want to use This is not your top priority in the majority of situations But The fact that mine winds up being the fastest is actually extremely important with something I'm going to talk about towards the end with how patterns can be optimized under the hood Self-optimizing Whatever you want to call it, but it's possible to have the constructor Rewrite parts of the pattern in ways that are known to be more efficient That is extra work But because mine is so fast when it comes to construction that extra work still has me as fast So then the memory usage as You can see it winds up basically being the same the exact values are a little off so Ratios relative to each other are off But it basically looks like the same thing mine winds up being the most lightweight as far as construction goes Followed by a parsec with Microsoft being a bismuth but this isn't the whole picture and in fact one thing you want to do is check against a Failing Match That is you have something like a pattern Reg X whatever that would match a phone number, but the phone number is typed incorrectly There's a letter in it or something How does it respond to a bad match? You can see mine does well really well In fact the numbers wind up being basically the same for the successful match Microsoft's as far as performance Wound up being about the same Without and but when it failed it did not need to use any memory. I believe that is because Reg X systems typically and Microsoft's definitely does not use Any type of error reporting when it doesn't work You just kind of know that it doesn't work and you don't know at what point it failed that's part of the reason why these these Reg X tester websites are quite popular and I know I've used them extensively because it can be a little tricky to debug those kinds of things but My approach as well as F parsecs do error reporting Clearly one of us handle failures and do error reporting much more efficiently so that I stress test them and stress testing was done by generating a very large string But it specifically was from one to or from zero all the way up to the integer max size divided by four If you were to write this out to a file, it would be just over half a gigabyte large and The string contains Random selection from an array of every lowercase letter in English As well as a space So what you get are these words delimited by spaces This was done because it's quite easy to implement a match or a parser for these Because the primary Purpose of this test is how does it respond when consuming incredibly large files? because Things don't scale linearly Something that performs really well on a small scale doesn't necessarily perform the same way on a large scale And you can clearly see what the results here that the performance did not scale the Examples that the charts I showed before are not represented here now and What are the findings with this? Good job with the scalability Microsoft. I seriously commend that I expected you to be the worst performing and as it turns out You beat mine across the board Like seriously really good job Clearly if you're working with absolute massive files There's a good approach to use Mine holds up well though. Just barely trailing behind one thing to note is that Microsoft's approach does use a little bit of memory eight kibby bytes exactly I'm Very surprised to see them using less memory than both mine and f pars x I I don't know Why this is the case. I I don't know why mine is using so much It's you know still a fairly new product. So I Still have quite a bit of performance optimization to do. I just I Clearly need to do some diagnostics and figure out why that's why that's the case I did not expect it to use that much But still it's not that bad. It's definitely beating out what is Claimed to be just as efficient as a handwritten parser It's that parsecs. That's that's what they like to claim I Think they should do a little more testing Because that performance for a parsecs is really Really bad do not use that on large files at all. No So if you went and implemented a thing for a parsec for you know, really massive bits of data like a CSV from I don't know seismographs or whatever I'm sorry. I'm sorry You got to rewrite that whole thing. The performance is terrible So ideas for future work for this because there are a lot in this instance There needs to be more pattern types and parsers Something that I had not implemented at all is look ahead and look behind I'm looking into no pun intended a way to unify this So that you can just simply state that a specific part of a pattern should be looked for But basically what a look ahead or look behind is You check to make sure that it's there it has to be there for a successful match But it's not actually going to be returned as part of the results. I'd like To unify that to where you can just say hey look for this and based on where it winds up in the Constructed pattern it makes it a look behind look ahead a look behind or I guess that skip And that's something in the middle that Must be there, but you don't want as part of the results. I don't have a find parser yet either That would work similar to the match in reg X where unless It's anchored to the beginning. It goes and finds the thing and then others There is something I'm working on that that I will talk a bit about I don't know where So there are some need for further Optimizations in that I need to identify more instances where patterns can be rewritten and implement that rewrite Luckily these rewrites are actually really easy to implement because they work through a sort of synthesized multi dispatch It's not exactly multi dispatch, but it's not function overloading There is some dispatching going on Another thing is to investigate whether or not to use unsafe code I'm not sure about Microsoft's approach, especially since they have different implementations for the net framework and net core I'm not sure What they're doing on both of those but F parsec is using unsafe code and is part of why it's so fast but I'm not using that yet and To be perfectly honest, I'm not sure if I want to there we go another thing that I need to Wait for in this instance Both of these libraries are implemented on net standard 2.0. I don't really have access To the stuff that was provided with net core 2.1 or net core 2.2 Yet the ability to make a span of car from a stream Was introduced with net core 2.1. I will implement this as soon as I have the appropriate net standard version, but It hasn't been officially released yet, so that's that I'm sorry, but I got away another thing is more predefined patterns Completely forgot to mention this in its entirety, but Inside of the patterns class. There is a large collection of static Predefined patterns. This includes basic things like what you would know as a Character group in regex for things like hey match any letter match any number match any space match any control character These are already defined It would be good to have predefined patterns for bigger things like an Entire email address or an entire URL this way Not only do you not have to worry about the complexity of some of these patterns because some like you are a little bit really complex But also it's implemented in the most efficient way known So I want to just give some notes about F. Parsec. I suppose you could say I'm shitting on it a little bit here So some some stuff I got to say about language compatibility F. Parsec was defined in F sharp There there's part of it that's defined in C sharp so that they can have the unsafe code bits But the libraries are forced into The assemblies are forced merged into one single thing one single nugget package There isn't really C sharp support not officially anyways. It was defined overwhelmingly In F sharp and is meant to be used in F sharp. There is a third party binding to it in C sharp It's a little wonky in my approach. However, while it was defined in the C sharp Because visual basic is so similar. I did some basic tests just to make sure that the operators did not collide and You could define the same things in visual basic, but it just works exactly as you would expect You could do that same approach in F sharp, but just as to kind of make it more functional I do have a full Binding library for F sharp where everything is exposed in a way that is very What you would expect in a functional environment All of these are official Supported things the entire design was Took into consideration the means of all these languages And there is also an official API for bindings that I created that was used for the F sharp Implementation, but you could use for bindings for other languages as well Updates for F parsec seem to have slowed down Substantially, I don't know if the project has been abandoned or not, but not a lot has happened in what over six months now there's a growing number of issues that have been reported that Aren't even getting comments on let alone fixes But I don't know what's going on there. It's definitely not Finished there and I haven't declared it complete. There are things that they have declared in the works that It just seems like nothing is happening anymore another note is that because F parsec is a parser combinator. You're stringing together parsers You're describing how to parse the text So there are Specialized parsers that you have to use even though they parse what is basically the same thing You have to know Which ones of these you want to use in which situations? you have to go through and You know structure the thing optimally because you're responsible for performance Whereas with my approach, you're only responsible for Describing it so there is what I'm calling the underscore nightmare with these specialized parsers their languages like F sharp that allow underscores Inside of numeric literals Ida is another one. In fact, if you're watching this video You there's a good chance here one of the people who regularly watches the stuff from my channel and I primarily cover Ida It's another one that allows underscores inside of numeric literals They're Kind of used as digit separators like you would use a comma. Let's not advance yet The issue is that the rules for where to put these underscores vary quite a bit between these languages In some instances, you are allowed to have multiple underscores next to each other while in other instances And that would be a violation So because of these specialized parsers They have to make compromises that winds up either Strictly supporting one approach and kind of saying Sorry tough shit for the other ones Implementing all of the approaches, which means either you have a large set of these specialized parsers and need to pick the right one for your grammar One single one that unifies these but you have to specify the configuration for your grammar or There's one other one. What was it? It winds up being a very complicated matter and it just sort of Easier on everybody when you describe the grammar instead of what to parse The same exact thing happens with how to specify bases While many languages use the syntax that originated with C There are other Syntaxes for specifying a numerical base and it creates that same kind of problem So finishing this up some of the technical details about this approach why it works what works well the error reporting why mine was So efficient The errors are not exceptions at least not until you need them There is an actual error type that Are mapped to the exceptions that is there's a little tree of errors that is mapped to this own little otherwise identical tree of exceptions Throughout the entire parser for the pattern The errors are assigned This winds up being considerably more lightweight than exceptions clearly because you're only assigning a structure with the relevant information inside of it When you assign an exception you wind up doing this whole Stack information another shit that gets carried along with it that makes it very very heavy weight But because of this mapping Well, I'll say this first these errors allow you to get fine-grained information about the failure So you try parsing something and it doesn't match it will tell you at what part of the pattern it failed at Which is super helpful when debugging and is something that I really wish where I get supported But because of this mapping between the errors and exceptions you can throw the corresponding exception when you take the result type from the parse operation and you can call a Throw exception method and it will automatically convert back to the appropriate exception and throw it If there didn't happen to be an error then that method call winds up doing nothing So it is safe to use. You don't have to worry about null checks or anything like that. It's done for you and Clearly that significantly improved performance Another thing to note is that The entire thing makes extensive use out of being mutatable The whole thing with functional design that caused it to not scale well at all Don't ever mutate something make everything immutable. It's got problems. I Don't wholeheartedly did Disagree with it though because there are plenty of situations in which you don't want things to be mutatable externally That is you as a consumer of this library Cannot mutate the source or the result objects They are immutable as far as externally you can tell Internally Mutate the hell out of them For example when parsing the result object is created at the at the very beginning when you call the parser that you're interested in The result object is created immediately and is passed by reference through the entire chain Mutated the entire way, but what you get back out You can't change at all this I Feel is the appropriate compromise between the two Mutations are definitely faster. They're definitely much easier on the garbage collector or the amount of times You need to manually deallocate either way you wind up Doing more work when you do that Slow things down, but it prevents the errors that accidental mutation can cause Because you don't want to parse something Accidentally change the result and then be wondering why you Don't have what you expected you to have and lastly I want to finish this up by discussing how the self-optimization or the pattern rewriting works So here we have a little pattern tree Yeah, because in this instance it definitely is a tree it would be more correct to view it as sort of like a branch list But it's here. We definitely have a tree There are three literals We've got hello a space Those two are joined by a concatenator and Then we've joined that by a concatenator with the literal there So it would parse hello there as it turns out parsing a literal is faster than parsing a concatenator So during construction time you can replace concatenators of literals with another literal that has Internally those concatenated It just slight tweaking The result is exactly the same But it winds up being faster So if we concatenate the hello and the space We can replace it with just a literal Hello space Concatenated with the literal there Now here we also have two literals that are concatenated so we can do this rewrite again getting Hello there and on that note Hopefully you found this interesting Try it out again Documentation is available. There's quite a bit of it. I have the link down in the video description and Until the next video have a go


Hey everybody, this is Brian, and welcome to the 34th LAMP tutorial. Today we're going to be discussing scope. What is scope? Well, let's make a class here, and we'll call it person, and we're going to make a variable called name. Actually, we want to give it an access modifier public, and let's make a function, show name. And this is just going to print the name out on the screen, and this is actually a common mistake I see a lot of people make. Can you spot the mistake while I'm creating the variable? And we'll say me, oops, and let's call that, and let's run this and see what happens here. Absolutely nothing. Why? It's printing nothing at all. Well, let's actually initialize this, and now you're thinking, well, you didn't initialize it. Well, let's initialize it with something different. Say Heather. Notice how it prints Heather, but up here it says Brian. This is called variable scope. Now what we're saying is this variable has a global scope to the class, and what does that mean? When you create a variable, it's accessible from its creation point where we are and all subcode blocks. For example, in this, notice how we have the name, but it's different. We're actually creating a new variable here. When it comes to PHP, and I should say most programming languages, you need to use what's called the this pointer. It's a pointer to the current object. Let's actually create two of these so you can really see what's going on here. I want you to really understand the difference between this name and just name. Notice how once is Brian, once is Heather. Well, here's our name variable with the global scope, and here's our name variable with the scope local to this function. What's going on is we're creating a whole new variable. It may have the same label, but it has a totally different scope. Now that's bad practice, and you shouldn't do that, because as you can see, it's very, very confusing. You don't want to do that in the real world. I'm doing it for illustrative purposes to show you what not to do and what to watch out for. You access global variables through this keyword. Now, do you think name is available outside of this function? No. Why? Because it's created at this level, at this code block. What if we say something like if true echo name? What's going to happen here? Well, because we create the variable here, it's accessible to all subcode blocks. So that's how ifs, then, do, while, loops, all other little code blocks work. You can create a variable, and it's accessible inside of those code blocks as well. It's not accessible outside of this function, say new. The reason is because it goes outside of its scope, its code block. However, the public one is available. So in this case, it would be yes. Pretty simple, pretty easy concept, but hard in practice. In the real world, never duplicate variable names, never, ever, never ever do that. Why? Because it gets confusing, and it just really, really bad programming form. Now, I want to discuss also very quickly visibility. You see this access modifier called public. Let's actually create a few variables here. Protected, and we'll say age, I'm 38, and private, and we'll just say ID. Notice how we have three different access modifiers, or three different levels of visibility. Public, protected, and private. Now, what do these mean? Public means it's accessible to the whole world. Notice how we can actually access this from outside of the class, because it has a public access modifier, name, name. But we don't see age or ID. Why is that? Well, protected is only to the current class and all classes that inherit it. So if we say person, oops, actually, I don't know how to myself class, person extends. I can't use person, can I? Let's say employee extends person. And let's just grab a function here. Call this our test function. Oops, got a little ahead of myself there. Let's just say this. Notice how now, because we're in an extended class, we have access to age and name, but not ID, because ID is private. Private means it's only available to that current object, that current class. So you could use it in this function show name, but you can't use it down here in other classes or outside of the class. So let's actually create a employee. Ah, can't see my mouse. Let's call it myimp, new employee. Notice how once again, visibility comes into play. We can only see name, because it's the only public one. Now, you can also do that with, you guessed it, functions. And then we'll say internal only, just as a name. Function does absolutely nothing. Oops, should probably put the word function in there, so that knows what I'm talking about here. That function does absolutely nothing, but we can see it within extended classes. Internal only, see right here, because it's protected. But if we try to access it outside, notice how suddenly it's not there. And yes, you can make functions private, so they're only accessible through the current class. That's all for this tutorial. I hope you found this educational and entertaining, and thank you for watching.


Gwneud yma. The first item of business this afternoon is Time for Reflection and our Time for Reflection leader today is Dr Maureen Cyllidog, director of Interfaith Scotland. Members of the Scottish Parliament, thank you for the opportunity to speak to you today on behalf of Interfaith Scotland and the Holocaust Memorial day trust. Today is 17 January. It was on 17 January 1945 that SS units began to noon as the gyda gennym ni'r droswgchweithio hwybr yn cyfioad, roeddwyr i gweithio argyth i'r ddweud dros ymddangos. Fy fyddai yma wedi ychydig asti agosgall y Cyfridd. Mae'r parwb hynny ei fyddai amser yn cair i gael, mae prydyn ni wedi sicrhau hynny i'r blaen o'r impact o'r amddangos. Felly rydyn ni'n ei wneud i chi'n ffordd ar gyfer ni, yn ffynoedd yng nghy neutr, 72 yng nghyrch agos ffyrdd agos. Next week, Scotland will remember the holocaust and subsequent genocides. Speaking at the National Memorial event and Bishop Riggs academy, we'll be daughter of holocaust survivor, Saskia Tepe and survivor of the Rwandan Genocide, Omar Tasey Stewart. The theme this year is how can life go on? A question that survivors must ask themselves. It's a question that we in Scotland must also ask ourselves, when we consider the asylum seekers who arrive in our country, many having already suffered war, deprivation and trauma. Just how can life go on when any sense of normality is removed? Holocaust survivor, Ellie Weisle said. For the survivor, death is not the problem. Death was an everyday occurrence. We learned to live with death. The problem is to adjust to life, to living. I've often thought how difficult it must be to adjust to life after devastating trauma. My own mother-in-law struggled to adjust to life after being sent on the kinder transport to the UK and then learning that her parents had been killed in Hitler's gas chambers. Later, unable to adjust to family life, she walked out on her children while they were still infants. And it was only at her funeral 12 years later that the children actually learned they were Jewish. Living on can be a struggle that impacts on future generations. And what does this mean for all of us? How do we help individuals, families and communities live on aftermath of terror and displacement? Scotland is home to many who are living on away from their homeland, sometimes facing discrimination and always living with memories and loss. It's easy for us to feel overwhelmed with the magnitude of suffering and become paralysed by it. But I have read stories of how small acts of kindness during the Holocaust gave someone the will to live on. And I have witnessed asylum seekers weep at a kindly gesture. Never underestimate the power of simply being kind. I'd like to end with an adapted poem by Naomi Nye. Before you learn the tender gravity of kindness, you must travel where the refugee lies dead by the side of the road. You must see how this could be you, how he too was someone who journeyed through the night with plans and the simple breath that kept him alive. Before you know kindness as the deepest thing, you must also know sorrow. Then it is only kindness that makes sense anymore. Only kindness that ties your shoes and sends you out into the day to mail letters and purchase bread. Only kindness that raises its head from the crown of the world to say, it is I you have been looking for and then goes with you everywhere like a shadow or a friend. Thank you.