Hello? Good afternoon. Good afternoon. Okay, okay. So I think some of you are sleepy because of the time but yeah. Okay, so thank you for the good introduction. So you can call me Ian. So I'm from the WordPress group from Philippines. So yeah, we also been doing this some sort of word camp. So okay, so much for that. Let's go to the topic. So have you heard about Headless WordPress before? Who is here first time to hear this feature of WordPress? Okay, thank you. How about for those who have heard about this? Okay, so later maybe we can do some sort of a sharing. So I will just cover all the necessary points if you want to add more. So feel free to raise your suggestions, okay? Okay, so that's my face. Okay, so let's, before we start, so let's take a short lookback or throwback on how really WordPress started. So you know, oh, we all know that WordPress started as a blogging platform. So, but that's way, way long before. Then pass forward 15 years later, WordPress is the number one CMS choice for developers and undevelopers. So any hand for WordPress? Okay, so now estimated roughly 30% of top 10 million websites run on WordPress. So technically from being a blogging platform, WordPress has evolved really maturely. Not really it can do anything, but somehow it can accommodate any request or functionality you want to integrate on your website. So let's move on to the next topic. So let's do the introduction for the API. So who here have been using WordPress since version 4.4? Okay, so are you reading the release notes or not? Or you just update, update, then done? Okay, so the API functionality on WordPress was released on version 4.4. As because they want to go to a direction that it's being a fully pledged application framework. So meaning it is not just a CMS or just a simple blogging platform. They want it that it can now create applications. So how would you create applications? So first thing you need is you need to have APIs that would supply the application. So WordPress introduced REST API that enables the platform to interact with just about any sites or any web application. You can use WordPress as your back end. And then for your front end, you can freely use any framework that you want. Either if you want to use a JavaScript framework or just a basic HTML CSS with some integration of jQuery. It's up to you. So that's how powerful, how they envision WordPress to be with this API. So how does that work? So we all know that this is the basic setup of WordPress. So you have the teams that would act as the front end. Then you have the functions and the other built-in things there to be your back end. So example, you want to display the post title of Hello World. So before interacting to database, so we had a server and a PHP that would process the request. Then get it from database then displayed it on the web page that you are working. Next, please. So now comes the front end framework. So how does this happen? Next. So we have the Hello World application. So let's say that the Hello World is being used. You are using any of those front end frameworks. So how this WordPress comes to the picture? So next. So WordPress would act as what I said, your back end. It would get all the contents, it would perform the crude operation, create, read, update, delete. Then it would get what you feed into that. Then next, display it to the application. So sounds simple, right? So simple, right? Or it's too complicated to process. So let's put it this way that you are now separating front end, the main web application from WordPress. So basically you have now two working applications, okay? So next. So let's now get into the main topic. So there are two types of structure that you can use when building a headless WordPress. So any idea? What is the two structure that you can use based on the pictures? So what do you see on the first picture? What? What do you see? From WordPress. So what does this costume portray? So this is, we know Halloween, so trick or treat. So this is headless. So the first structure is the word itself, headless WordPress. How about the next structure? What does the girl doing to the boy? Saying goodbye. If you said goodbye, they have breakup. So they call it, that's the next structure we call it, decoupled. So sounds funny, but that's how they call it. Because before, as I said, the front end and back end, it's coupled in the WordPress installation. But since we're separating it, so the term they use is decoupled. So I don't know why they introduced that term. So let's get into the definition. Next. Okay. So for the decoupled, the back end where the content is created and the front end where the content is deployed is hosted separately. So technically you have two applications. So the first application is WordPress which serves as your back end. And the next, the front end is anything that you specialize at any front end framework you are free to use. As long as WordPress is your back end, you have no problem integrating this. The next is, the thing of this one is you have still the benefit of content preview. Because WordPress, they have this content preview where before you publish, you can check the draft first. Then see everything goes on how you want the layout to be before publishing. So with this, you can still do that thing. But the thing is you're not getting the power of the live preview of WordPress. Instead, you're utilizing the preview of any application. So I've used some JavaScript based frameworks for front end. So once you have changes, it automatically reloads. So still you can get the benefit of having your content viewed on how it would be displayed. The next is implement one is to one relationship. So it's like, you have this front end thing that would just serve for this specific front end stuff that you want to do.  So if you use a decoupled approach, it would follow a one is to one relationship. But comes next now, the next is structured, which is the headless. So headless is a totally independent back end. It's not like the decoupled that somehow it's dependent on the front end. This one is the subset of the decoupled. So you're just isolating WordPress as your main back end. Then that back end would implement a one is to many relationships. So example, you are maintaining couple of apps, but just displaying the same data. It's just in this app, the layout is different from the other applications.  Okay, so they can create several apps up to them up to your front end developer. So any questions so far? So are we clear with the structure? Okay, so next is we're going to go now to the pros and cons. So next, the first pros you can get is a full speed ahead. So you have a fully optimized application because you see in WordPress, this is the first problem for beginner, the optimization. Because the optimization of WordPress is really hard for beginners because beginners just tend to plug in, plug in, plug in, plug in. So it becomes the site heavy. Unlike if you use a headless approach, your website would not be dependent on any external libraries all built in WordPress which is fully optimized. You can get the information very fast. The next is flexibility. So as I said, we have two applications back and forth WordPress then the front end which is up to you what you want. So you have now the flexibility to integrate it to different platforms regardless of what would be the front end as long as it can support the response, the JSON response from WordPress. You can have the flexibility to seamlessly integrate it. Then if you have updates, it would not be also too difficult to handle since the two are acting independently. Next is bullet proof. So another issue, security. So we'll tackle that later. But technically, you've been hiding your back end from public access since it's a separate application. So what they just see is the front end application. So the back end, they don't know where you're getting the data. So it would be somehow not really too hard but at least you would give your penetrators some challenge on finding where you are getting your data from application. So if there are pros, there would be cons. So you can't have all in one. So next is you need to be jack up all trades. So why? Because as I mentioned, unlike on WordPress, you're maintaining just one instance of application but now you're maintaining two. So two different applications. So you need to know how both of those is functioning. If you would be the one who will develop and maintain it. Because if you don't, because I believe if you're a back end developer and you don't know how the front end works, it would not make sense for the API's applications that you're doing. So because what would happen is example the front end, guys, hey, I need this, I need this.  You need to understand why they need it. Because a good back end developer, it gets all the logic. The front end just consumes everything ready. Example, I have this experience with my developers that we have this, we're displaying the price. So now the tendency is we first launch the application for Singapore clients. So the currency is $5, right? Then we also have a business entity in Kuala Lumpur and you know the currency there is Malaysian ringgit. So now they don't put the logic of getting the currency in the back end. So they put it on front end. When we deploy, so it's reflecting $5 even we are selling an item in Malaysia. So that's why you need to, you need to get to know both. So at least somehow the basics. So you know what you need to be included on your back end, on your WordPress. How you would structure the response for the front end. The next is, as I mentioned, being a jack of all trades, there would be a learning curve. So new technologies meaning new challenge. So example that when you want to integrate on a different framework for front end. So as I mentioned, you also not really need to master it, but at least get the concept, get the idea. So you know how you would build your back end. Then next is, you would be the utilizing WordPress. So you telling me I would be the utilizing WordPress. So why would I still go with the headless thing? So the only thing, that's why I mentioned you would be the utilizing WordPress is you would be losing the power of the VCWG editor and the live preview. But if that is not the case on the application you're making, then even it is a cons, you can still proceed doing this structure. So having said that, so I prepared some short demonstration on how you can implement WordPress a headless structure on your application. So this is actually, I'm not trying to do live coding. I already made the final output. So we just run through each component, the front end and the back end. Then we see how this would be beneficial or not to our applications that you are doing. Okay, so access me. Okay, so and here, familiar with the hero app. Hero app for Angular. So for Angular beginners, this is the first tutorial that you would be making. So I created this simple application that would list out all the data. Okay, would list out a set of heroes together with the short description and their logo. So basically, the layout is made up Angular. Where do we are getting the data? We are getting the data from here, WordPress back end. So the first thing I did, I do is I created a custom post type which is hero. So then from this post type, our application, our Angular application is receiving and displaying the data as is. So how that does happens. So let's make a quick review on the code. Okay, so oops. Okay, wait. Okay, so I created a plug-in. Why I created a plug-in? So because okay, so okay, by default, this is the endpoint of WordPress. All the data on your WordPress installation is here. You just use your domain then slash wp-json. But do we need this bunch of data? Not, right?  So it would not really make sense for them. First rule of front-end developers, you just give me what I need.  So what we're going to do is, so first is we created a plug-in. So this plug-in would hold, I created a master class with these heroes that would hold all the functions. So first function is I registered a custom post type. So if you would see, it's just like a regular custom post type, your regular custom post type code. The only difference is this one, show in res. So meaning it would include this on your when you request for API in the WordPress. So if you remove that, those bunch of data that you see earlier, it would not include this post type. So next one is I just created the custom taxonomy just for presentation purpose. Then next is the custom endpoint. So let's go back to this API. So technically, we have this, oh, sorry. We need to give the front-end developers the exact data they want. Which is when we look at the app, the name of the superhero, the team, the logo, and the short description. So how do we do that on WordPress? So we will be creating a custom function and put it on a hook. So first is this hook register res route. So meaning you would be creating your own routes for this one. Since we don't want to use WordPress it has a bunch of data. We just need the specific portion of that. So we use that hook. Then the first parameter you put in there is the URL that you would be needing. Then next is the method which is if it's a get or post. So I think I don't need to elaborate what's the difference between get and a post. So for this request, we need to fetch the data. So technically the method we will be using is get and then next is why do we have a callback? So the callback would give you the structure of your response. So if you see get all heroes, so I created a separate function here for that one. Then if you would see I made a WP query function here to query all the post type with the publish status and the permission is readable. So this one is a self-explanatory thing. So we created the JSON response here. The first response would have the parameter of title which would be fed with the get the title function which technically gets the post title. The next thing is getting the post content. So get post filled, post content. So I put it in the description parameter. Then next is we need to get the image. So I just use the wordpress pictured image so we not introduce a new custom field since it's already built in there. So I just get the URL from that. Then next is the tags which team this superhero came. Then this would be the sample response. Okay, let's go back to the query. So here you go.  So the title, the description, the thumbnail and the tags. Then now, you just need to give this endpoint from the you need to give this endpoint to the frontend developer. So when he started to code your application, so he just need to integrate this. Okay, so you see, he just calls this function and then it maps whatever output do we want it. So we see the hero. So if I change Superman's name, let's say okay, let's edit. Let's say X-Men. Oh, what happened? Wait, I'm not running my angular up. Sorry. Okay, let's come. Let's run our angular up. Okay, building, building. Okay, so you see from Superman it became X-Men. So that's how headless WordPress is being implemented. You would be just utilizing your WordPress just for those back-end things like updating the basic crude operation, create, read, update, delete then for display, you work out a separate framework either angular or whatever thing you need. So now having said that, so okay, let's go first to the security. So I just have here two points that you need to do. This is just the basic so I think we have a separate talk for security. Maybe you can chat, you can channel your questions to the one assigned to that. But these are just the basic that you need to know when integrating headless WordPress. First is the course. Are you familiar with course? Cross-origin error. So this is happening when the request from a certain endpoint is coming from a different domain. So it's a basic security of servers that it's implementing. But if you put this certain code on your application so it would allow accessing of your application to whatever domain your front-end application is hosted. Then next is this one. This is the most important. Having your API tokenized. So the one I made I showed you last earlier was not tokenized. So if that has a post method, so if they know the endpoint, they might abuse it and post redundant or unusual things to application, feeding your application with malicious information. But if you have this tokenization that before processing the request, it would match the token from the source to your WordPress site. Then if the token matches that's only the time that it would process the request. If it's not matching, then it would reject the request. So to be specific that is JWT or it's the meaning I forgot who knows about JWT JSON Web Talk that one. Habahan for him.  Anyway, so those are the two key points but that are just the basics so you need to ensure other stops, basic stops on WordPress like hiding your WP admins would still be followed.  So here are the three things you need to consider. First is the cost. So having maintaining two applications meaning you need to spend more because let's say first on the developer if you are not good at front end, then you need to hire a front end developer then if your server can relate to applications, you need to buy or create a new instance of server for your front end application. So those are the things that you need to consider in costing. Next would be the multi-channel publishing. So this is the one I'm mentioning earlier that if you want to publish your information or your API through multi-channels, so headless WordPress is the best approach for you. Then next would be the maintenance. So basically if your site depends on daily maintenance performed by users and familiar with coding basics you may prepare to stick with the original implementation of WordPress or better hire a developer to help you set everything up and prepare your hands to get dirty. So it's up to you if you want to this is an exciting feature of WordPress. So it's up to you if you want to explore it or not. But still it would depend on the needs of your clients. So I think that wraps up my talk. Salamat it's thank you in English. So remember WordPress code is poetry. So thank you very much. Anyone want to send questions for again? For this approach. So this application is, I mean this implementation of WordPress is more up on the back end. So for SEO thing, if you're asking about SEO thing, so when we try to do this on one of our applications, so it's a main issue with I will not name the framework, the front end framework, but if you're using a JavaScript based framework because we all know JavaScript is client-side rendering and Google can't crawl or read that. So it would be a big issue with SEO. You need to dig in some technical knowledge in order to overcome or implement a successful SEO campaign if you would be but would still depend on the front end framework that you choose. But for WordPress, let's say if you install the basic plug-ins for SEO, it would not be really essential since you would not be using WordPress as a front end. It would be merely isolated as a back end. So for SEO, it would depend on the front end application that you would be using. I'm Carl. What's the JWT plug-in could we try and use if we want to organize? Okay, so for the JWT plug-in, not to brag about but I'm not letting my developer use a plug-in for that one. We are using our own tokenization just to be secured because it's not that I don't have trust using security plug-ins out online but let's say that if you are publishing any sensitive contents on your application, so I might recommend that not going through a usual plug-in if you can create your own tokenization better. It's just an easy one. You need to actually you can use WordPress for this one. You can extend that one. So you don't really need to do plug-in. As I mentioned if WordPress gives you this and you're doing development, then you can utilize it. So at least it's like WordPress is giving you this so why not utilize it. But if you can suggest any other, if you are using any other plug-in, so no issue about that as long as you find it secure, then the thing is you're getting your connection with the API calls securely, no problem with that. But for me when it comes to security I'm so-so with using plug-ins, okay? Okay. I was just about to suggest no questions. I thought Ian just now said he wanted to get in position. I'm a silly question which is not really a good question. Which tools you use for making this slide? Actually I was using Prezi Prezi, Prezi. P-R-E-J-I because I find PowerPoint boring because naturally it depends on how the speakers approach but that's what I observe when I present things. So if I'm just using Microsoft they just tend to okay. Okay. And like on Prezi, you get DC looking everywhere. Sometimes the slide goes up. So just use it just to get attention of the crowd. So at least they are when you see things are moving so you also get the attention of the people. P-R-E-J-I when you deploy the WordPress for Headless, the front-end of the course that are for WordPress are still there, right? Or how do you do that? Okay, okay. So for that one, so basically we are not really killing the teams we are staying as is but the server we're deploying it is an isolated one so it's not available for public viewing. So if they tried to view the domain, so they would be redirected to the front-end. We're doing that kind of mechanism. So you can really take away the front-end part because it's part of the WordPress installation. So essentially you can stay the normal. That would be beneficial if you would also be using multi-channel publishing example. You have a website and you have a mobile application. Because I have this one client before that he has a work. I'm developing his WordPress website. Then he hired the external mobile app developer. His goal is if I publish something on the website, the mobile app should do it. Then I don't know, he has a very lazy mobile app developer. He told me you create API, I just consume it. It's not that every time he updates I also update. So I find it sensible but then lazy guy I'm doing all the work. But then seriously speaking you can retain the front-end for your website. Then if you want to publish on applications. So that's the time this headless setup would be working. Because you need to update on just one instance then everything. Website, external, mobile or whatever applications that needs that information to be updated would also get the information. Can you remove it? I'm not really sure on that one because I haven't tried it yet but maybe let's see. Hi, this is Hassan from Bangladesh. I have a question like this is mostly about API, right? So is there any built-in feature for red limiting or throttling or anything like that? Actually there is something like that but it's kind of too technical. That's why I don't include it. It's a built-in in WordPress. Are you familiar with transients on WordPress? You would utilize that functionality of WordPress because the main issue is if you're getting a big chunk of data so the response would be really not really too slow but kind of not acceptable to the standards. So that comes now this transients and caching thing that WordPress has built in. You can fully utilize that one. So developer need to go to stress these things first? Yup, yup. Any more questions? No? Okay, three more minutes to guess what time it is. So we're waiting for this. So it's tea time now. We're ready to go.


You too team keep it clean. I see some of y'all in here waiting for this one What's going on the same grave in here with another video and another episode of NFL questions from subscribers? Good morning. Happy Monday We got some great videos some great topics coming up And I don't even want to just say today, but just really throughout the month Because as y'all already know we ain't getting no football news for the next just about 30 days We ain't getting nothing nothing at all because everybody is away training camp starts in a month and We got a break we got a break, but that don't mean that team keeping clean is going to be taking a break for anyway The question oh y'all did get the notification. I see most of y'all got it You know what even for some of these videos with most of y'all get the notification There's some people that say they don't get it But anyway, we just I don't even know what to say about it I appreciate all y'all coming through so early this morning. Good morning, everybody Thank y'all for coming through but the question today in this video No, don't shout out me shout out to y'all man. This ain't about me. It's about y'all y'all the team keep it clean man So the question for today came from my boy Vegan King ghetto vegan NFL analyst first fan second shout out to my guy I'm sure he'll he'll catch up on this later on but he asked the question In the Ravens group chat that we got going on on Twitter And if you want to be a part of that if you're gonna be active in that Just send me a DM on Twitter and I'll throw you in there if you're gonna be active though, cuz I Not against anybody, but I just saw it's a limited amount of spots that that that group check can hold So I would just want people in there that's active. But anyway He asked in the Ravens group chat Willa Mar Jackson If he can make this current group of wide receivers look good that we got Like he did in Louisville that his receivers that he had there if he can make them look even better than they are if he can Really just get it going. Yeah, we even got a Patriots fans in a group chat, man We got a Cowboys fan in the group chat. It ain't just Ravens fans. It's just fans or whatever, man So we just talk about whatever mainly football Everybody respectful even if they disagree it's all in fun, man But anyway, um, he asked. Yeah, kid if Lamar Jackson if he can make this current group of wide receivers look good Given that he even takes over or when he takes over Can he attract the bigger name free agent wide receivers to the team can he attract those big star wide receivers to the Ravens organization something that we haven't had since I Mean we did get Steve Smith senior a couple years ago I guess we got Jeremy Macklin, but was he one of the bigger guys I get um, well, he only had like three teams going after Dad's turned us down. So he obviously wasn't attracted. Remember when T. O. Turned us down But just the top of the top, you know how There are players that are just beasts and of course usually those teams end up resigning them But there's some free agents when they're considered the top free agents You never hit him link to Baltimore and that could be for a number of reasons But anyway, we're gonna talk about some of those reasons right now But his question again if Lamar Jackson can make his current group of wide receivers look better and look good Will that help him attract more free agent wide receivers top free agent wide receivers star free agent wide receivers? To Baltimore will he do that? Oh, yeah, Jeremy Macklin.  That's usually the end of it Usually thank goodness for Mike Wallace. He made a name for himself in Pittsburgh And he did some things here too because he got to move on the Philly, but you see Derek Mason I think he went to the Texans and it just wasn't a good look You see Jeremy Macklin right now Steve's been seeing it was retiring anyway, so I can't really count him And Kwame Bowden thing. Well, he did he was a beast for us too, but if you get again Like I said about our receivers if you get drafted by the Ravens as a wide receiver You got to be scared you got to be scared you got to be scared because Ravens don't have a good rep with right with with wide receivers You see I can't even the words good rep and see even Ravens. They don't fit in the same sentence correctly That's why I couldn't even say it at first That's why I was like swimming and fumbling over my words when I said that first because it just doesn't go good They don't develop wide receivers good because if you're drafted by the Ravens chances are you're never gonna get a second contract Chance is all you are. Howdy who watches this video later on. I know they're gonna say it Raven what about Tory Smith? Yes, his contract on crutches man with the Titans. We'll see what happens with him though I hope the best for him, but Not and then there was Mark Clayton So what like three guys like three guys?  It's a scary place over there But anyway back to the question Can Lamar Jackson who we've been talking for like six minutes and ain't even answered the question yet Or even touched on him can Lamar Jackson if he makes this current group of wide receivers look good given that he takes over Can he and like it? Can he attract more free agent wide receiver bigger name bigger star names free agents to Baltimore if he if he can Make this group of receivers look even better like he did with the other guys at Louisville That was my boy a ghetto vegans question NFL analyst first fan second So, yeah, I mean it's it's two things that play into that that play into that question So two two big factors in that in the answer for that question One if Lamar Jackson can make the receivers look better If he can make more plays with the wide receivers if he can just allow help them be able to make more plays Then yeah, it'll be a big difference and I think just given that he has the ability to take off I mean Flacco has the ability to take off or Lamar Jackson has the ability to take off So given that he has that ability That can Extend plays he can extend plays a little more than the Flacco or like Flacco can move around in the pocket Whatever run to the left run to the right of a Lamar Jackson kid. He could run around he could do some wild stuff, man I mean, we've already seen the whole of the Michael Vic experience We've seen how that was and what he did with his legs and how he could extend plays and just it could be a it could be a Thing of beauty it could be a thing of ugliness too sometimes, but it could be a thing of beauty when it works and With that with Lamar Jackson just his ability to do that. Yeah, that can make it a little more attractive for wide receivers They could be like man, he can do all that. Oh, yeah I can make stuff happen for him They will actually want to play for him and want to help him make some of those plays man And they'll feel like you know what hey It'll take me back to when I was playing back y'all football with my boys a street football with my boys I'm watching the quarterback running around and that gives me more time to get away from these cornerbacks and the Safeties and linebackers and get wide open so you make a pass to me. Oh, yeah, we all point now So that's a possibility, but I think another big possibility a big factor that that goes into this Why Baltimore can't get the big name wide receiver one is I'm sure a lot because the media does already But I'm sure a lot of wide receivers do the same thing too Um, and I'm not saying that they're right But with their assumption and with the numbers when they look at everything I'm sure a lot of wide receivers look at um, what's up, Ryan?  I'm sure a lot of them do that I'm sure a lot of them do that and if much as I love flackle as much as you love flackle Even if you hate flackle either way you got to come to the realization that a lot of wide receivers probably do that a Lot of them probably do that. They probably think Nope, I don't want to do it. I don't want to do it but Even with that, I think a big factor why Baltimore can't um get these big name free agent wide receivers One they might not really be attracted to flackle like that. But another thing Is salary cap So if Lamar Jackson takes over That's going to mean that either that year Or see Dustin already knows it's going Dustin already knows where this is going if Lamar Jackson takes over It's going to mean that either that year or the following year that flackle will no longer be with the team Meaning the Ravens will gain back a lot of salary cap for flackle's deal Because for instance if Lamar Jackson takes over this year Then that would mean that flackle's still on it. Well unless they trade them But they're going to have to pay flackle either way this season So if if Lamar Jackson takes over this year, then that will mean we'll one year remove from having to Having to give flackle guaranteed money and we'll be able to get some big chunk of salary cap relief When flackle is cut traded or whatever happens with them Um when Lamar takes over But that's an if that's an if so With that that means that we'll have more salary cap room To sign the big name free agent wide receivers. So it could be like a it could be like a domino effect Where boom Lamar Jackson, he takes over boom some wide receivers. They're like, oh Lamar Jackson I remember this dude coming out of college man. I hey, I would love to play with him That's going to be our new guy then boom Flackle is released cut traded whatever. Um, and then we get more salary cap room just like that And then boom we can make the signs now So That's a possibility. That's what it is. That's what could happen. Um, will it happen? We'll see if it goes down, man We're gonna see if it goes down like that. But either way That's life as an NFL football fan, man, right? And that's life as a ravens fan John won't let that happen. Well, you mean John might not even be in control of things after it depending on how this year goes Um, so I mean we'll see I think John is on I think his leash is as short as they can get now, man I think that's it. I think that's it, man So depending on how this year goes, I don't think he'll get any more chances now But you know what? Some people feel like Lamar Jackson might have saved him So We'll see Oh, because things flackle still gonna be here next year. We'll see how it all plays out, man Anyway, appreciate y'all. I love y'all. Thank y'all for coming through I'm at work now. So I'm gonna go ahead and get on up in there Um, so thank y'all love y'all make sure you leave a like on the video if you haven't Man, we got 36 people in only 26 likes make sure y'all leave a like on the video since most of y'all haven't already Um, appreciate y'all. Thank you. Um And again, if y'all want to be in that ravens group chat if you're gonna be active in there Then y'all make sure you just send me a dm on twitter I'll throw you up in there, man Appreciate y'all and put put in the comment section what you think about this whole Lamar Jackson thing I'm out man. Yeah, shout out to Todd. He he was that real


Hi, I'm Alexandra Martins. I'm a researcher from the French Institute of Health and Medical Research, known as INSIRM. We are here at the research unit U1079, which is hosted by the Faculty of Medicine of the University of Rouen in France. Our unit focuses on the genetics of cancer and neuropsychiatric disorders. It relies on close interactions between biologists and clinicians, including geneticists and pathologists from the University Hospital, which is just across the street. I'm here today to give you a highlight of our article recently published in the journal Human Mutation. Functional analysis of a large set of BRCA2X7 variants highlights the predictive value of eczema scores in detecting alterations of eczemic splicing regulatory elements. As you know, with next-generation sequencing, the main challenge in medical genetics is no longer the identification of genetic variants but their interpretation. This is particularly important in hereditary disorders, such as hereditary breast and ovarian cancer, a syndrome that most frequently results from germline mutations in the BRCA1 and BRCA2 genes. The identification of the causal mutation is essential for diagnosis, patient follow-up, and genetic counseling. However, the number of variants of a known significance is very high, while some of these variants may be deleterious, for instances, by affecting RNA splicing signals. RNA splicing not only requires particular sequences at the exon-intron boundaries, which define the splice sites, but is also dependent on splicing regulatory elements, such as exonic splicing enhancers and exonic splicing silencers. Presently, it is very difficult to assess which genetic variants alter this type of regulatory signals. Splicing regulatory elements are still poorly known and are difficult to predict using currently available in silico tools. Another difficulty is that patient's RNA is often unavailable for analysis. To circumvent these limitations, we developed minigine assays that help identify splicing mutations. Briefly, we first prepare splicing competent minigines, carrying the variants of interest, and then, after transfection into human cells, the splicing pattern of the mutant minigines is compared to that of the wild type by performing RT-PCR analysis. Recently, we used this approach to evaluate the impact on splicing of all variants identified in the XN7 of BRCA2. Our results now published in Human Mutation revealed an unexpected high number of splicing mutations in this exon. We also found that most of these mutations increased exon skipping by altering potential splicing regulatory elements. We then exploited this large set of splicing data to test the predictive value of splicing regulator sequence scores recently established by the Chassin Laboratory. We were happy to find that this new approach could discriminate quite well between mutations that induce BRCA2 XN skipping from those that did not. Thus, our data suggests that this new in silico approach represents a promising tool to prioritize exonic variants for functional assays. I'd like to thank all the people involved in this project. If you'd like to learn more about this work, we invite you to read our article in Human Mutation. And also, if you have comments or questions, please send me an email. Thanks for your attention.


So welcome everyone. Thank you so much for being here This is not gonna be a selling presentation about anything. Okay, so just to be clear. My name is Victor Rodriguez. I'm from Mexico I work in Intel Unfortunately, I'm not an open stack developer. I would like to be but yes This is not gonna be an open stack developer presentation. This is the point of view how Compiler and OS developer guy tried to help to improve the performance of the cloud So what we are gonna learn what I'm trying to show in this presentation is how the latest technology of the compilers can improve The performance of many of the application that are running in the cloud. Okay, there is a lot of Background history of how how difficult is to change one compiler version to another compiler version in the operating system That are running on the servers that we use for open stacks application However, there are really good benefits of changing one compiler to other despite of the effort that you need to do So I will try to encourage you to change the latest version of the compiler So it is gonna be the gender for this Unusage resources how many resources do we have and how we are not using those resources in our servers? AVX technology is one of great and all the great examples Function multi versioning is a way to solve those kind of problems And the profiling is another way to solve the problem of the user resources that we have in our data centers There it is so on you said resources nobody wants to be there Okay, if you're in a traffic jam And there is a free line that you can take and you might be wondering why I'm not taking that free line if I'm stuck in The traffic why if there is a free line and I might go faster or this traffic could be a void Why I'm still here Why why nobody changed a path and and make the things much more efficient like in the picture that we can see And use of resources is something that is really typical in the server area that we have In total architect technology is has been there for years one of the greatest examples that we have is the advanced vector extension technology The history of computing power this is a picture that I take from one of my favorite books There is the side as a Hennessey Patterson architect or a quantity approach and The history of computing power has been was amazing in the 90s 20s and it was impressive We have 52% of increase in the performance of our data centers per year. Okay, and that was amazing What happened in 2004 something somebody can't remember that thing I mean we were just increasing the speed of the CPU clock and it was amazing But suddenly we realized that the power consumption was not that amazing at that moment, you know And that wasn't when the birth of a parallel computer came Some of you actually were in some meetings that were we were wondering. Hey It's gonna be what is gonna happen with Intel when they cannot support the increase of a frequency clock anymore Well the birth of a parallel computing now that was a change in the history that Create a new paradigm to how build computers how to build data centers How I create a software to manage them from operating system compilers and application So what happened next what happened with the growth of the of the computer since then? The growth has been amazing due to the fact or the capability that we have to increase the number of processors in a data centers That is amazing, but the question is are we using really that power in our data centers? Are we using those new instruction sets that the Intel architecture or any other director is providing to us? And this is a really good example They've info inter floating point roadmap. Okay, we started with four bits in 2008 2010 It's double the size of the array to 2011 2012 and it was amazing You know, we have much more folding point capabilities and it was amazing for the HPC system for the All the analytics that we can do for calculating the weather or the forecast or whatever you want to do That was amazing and that was a huge advantage. What changed later? well 2013 2014 we doubled again and we were the size of the array that we can manage with 60 bits and Last year sirs. It was theory two bits. Okay Then it was though the question here is why Intel is so worried to increase that huge size of the ray What why he is providing us an Intel architecture? We knew we knew arrays much more bigger or where they can manage much more folding points So here is a simple example Taking that simple example that actually just add to arrays in C and do that thing for like many times I need to do that because it was really fast in the beginning So the question is what is happening in the back of that? It's just adding one ray to another and putting the results into a third array. It's just pretty simple well The beard of the vectorization comes with that simple problem Imagine that you have the same code that it was in the previous slide So you have You can do without vectorization or before the vectorization technology came in 2008 You just have these addition of one element to another and put the solution into into another Register of the CPU was fine. But what happened with the others? Free part of the rate of the register. You are in use it that that is what I mean with in use of resources You're not using the full capability of your Of this instruction set. Okay, so what happened if I put The array that I have I'm coming back to our previous example now I will add the first element of the rate the second element of the rate the third and the fourth and I will do the addition in parallel in one cycle Just in one clock cycle and put the solution against in my in my rate in my Register in my CPU so that will decrease The time the execution time four times. Okay, instead of in the previous slide Sorry doing this one time Every time in in in all the two thousand sixty and in all the the four that I have What I have here is I do all the additions Four in one clock cycle one time. Okay, so I say four clock cycles every time that I'm doing this addition So the execution time will be reduced by four times So that is amazing. How do I enable vectorization in GCC? Okay? This is something that has been like for years and it's really simple Do you need to add the minus o2 or f3 vectorize? Okay, or if you put the o3? I know that it open a stack is in building in in in Python But there are some cases of where you and this is What the libraries that we are using in the back of that might be built in C or might be compiled in C Many of the libraries that we are using in the top of the open a stack application Might be built in C and we will see some examples nice examples So taking the except the previous code that we saw before without vectorization just doing sorry This execution way it took six hundred milliseconds just that simple code that we saw before When I enable vectorization that would use a time to 38 milliseconds Okay, and that is just a gain for using another flag So you might be wondering okay That is cool. I can reduce the time of my application in terms of execution time Which means that the workload that I put in the cloud might be a little bit slower So this is something that the HPC guys knows very well, and that's many of the things that they use every day, so What happened with AVX to okay? Coming back to the graph with a floating point roadmap We had four beats first then eight beats then 16 and now we have 32 The last 32 is the AVX tree. Okay, is the AVX 52 long register Intel architectures new features that we have since last year in the in the latest servers and that was fine The AVX 52 was it has a capacity for 52 from 0 to 511 AVX to can support a race of from 0 to 255 and The regular one that we used to show before just with a simple vectorization thing It goes with register from 0 to 127. What does it mean the instruction set is that that long? So what happened with AVX to I have much more just I have longer space so I can in the example that we saw before Do the addition of the of the elements of the rate in much more in parallel The only thing that you have to add is the may be X to flag and that's all the things that you have to add Okay, that's all the things that you have to add to enable the AVX to technology and before without using that flag You were not using the resources that was in the inter architecture So imagine that you are a CPU and you're a compiler and the compiler generator binary That is not using the full capability of the inter architecture or of the of the server So the CPU will say okay, I can run this thing But if you just add that flag I can run it faster. How much more fast? Okay, this is without any kind of vectorization 63 milliseconds with just a simple vectorization it reduced to TDA milliseconds with AVX to technology It reduced to 26 milliseconds. Okay, so that is a huge reduction in terms of execution time for using just one compiler flag I know that it's part of the what of the what the operating systems should be doing But the question is Does the operating system that is running your open stack has that enable in the libraries that you're using because me as an open Stack user and that's something that happened with my team I have I'm in the compiler and the power performance team And there is another team that is in charge of the open stack And they don't care about how do I do this as long as they see the workload in open stack room faster So what kind of warlocks go faster? Real case example number one That is a new well not that new Programming language that came out to the world a few years ago, right many Can somebody please surprise the hand if you know what our programming language does great So what does it use for we use it for analytics we use for? Big data analysis for statistics is amazing the way that they manage the graphs on the plots It's amazing and the way that you can do and linear regression is really simple So it's something that the cloud use right? I mean something that the cloud workloads or data center workloads might be using so this is a benchmark that have It wasn't done by Intel it was done by a External third-party magazine the name is for onyx and that magazine usually take all the operating system that they want that they choose and room benchmark on the top of it and measure the performance of the operating system and Give the reason why one benchmark. It's better than the other So they said I want to analyze how fast is your clearly nooks operation clearly nooks is the project Sorry Yeah clearly nooks is the project where we work and this is the project where we are enabling all these patches. Oh It's not my fault, right? I mean We can can you see the screen now, right? Yeah There you are. Thank you so Totally nooks coming back to the presentation is the operating system where we work Okay, it's an operating system made for by Intel to highlight many of the Intel architecture features That are not being used it, but any other operating system. Okay, it's not Yeah It's not We're not trying to compete With Red Hat or Fedora or Ubuntu on the other hand. We're trying to provide the openness the operating system Partners patches so that they can use this technology so that they can use AVX in their operating system and any User of the of the other operating system can benefit from that So that is one thing that I want to clear so they took clear Linux and they compare in it to other operating system Ubuntu Suze and Fedora as far as I can see lower is better And it's three times faster the way that the air script can run their benchmark and run You know in clear Linux by the use of AVX to okay the patches are available I put the link in QR code so that you can go to there and that's the link for the actual article of Veronica's and you can go and read and they explain and they link to the source code that make that benchmark Run faster. Okay, it's nothing really complicated It's just one single patch that you need to change in one file And that thing will make Ubuntu or Red Hat or Fedora run as the same speed and we have we have tested so if AVX is so cool and We can see with the results that is one thing that it's really powerful for me as a Developer of cloud technology because I don't care what happened in the back as long as the benchmark run faster for me It's fine. Why nobody used it. I mean it has been there for years ago. Why nobody use that technology since since has been there for years. Well How many binaries do I have to deploy because if I compile for AVX to flag I Have one binary if I compile for AVX tree I have another binary and if I come for file for SSE I haven't yet another binary So at least now I have three binaries. So imagine the path that you will have in user being and your AVX tree or user leaves 64 AVX to AVX tree and SSE it will be really hard to manage and it will be a nightmare for the OS developer to try to manage and come to Deploy all the binaries and they have to compile the tree binaries every time that they do a new release. So that is a nightmare So why nobody use that? Well, it's because of that because it's a nightmare to use it GCC6 which is going to be released the next week just I'm that is that is truly a commercial I'm part of the GCC team and that is truly commercial GCC6 finally see the light and next week and Release these new technology is function Multiversioning for C before it was just for C++ now it's available for C and You just need to specify in the same function that we had before The targets that you want that this function be optimized for okay So that is the only change that you have to do inside your code. You just need to specify Okay, I want this code to be optimized for atom for SLM and for AVX to okay, so At the end you will have a binary With the three different kind of Instruction set in assembly when you do the sorry, so it's broken right No, it's fine No, it's fine. It's fine. Don't worry. So We have at the end of binary with 3d for an assembly instruction There's when you do the object on and open the binary you will see the instruction set optimized for SSE for AVX and for AVX To so that will be amazing because on the runtime your binary will detect what hardware am I? Oh, am I in the latest a server see-on that my that this company run has oh, so I can run with AVX 2 or AVX 3 Okay, the overall the overhead Somebody might be wondering what is the overhead of this thing the overhead is just in in the size of the binary it increased 30% We're just we're in our way to write an article about all the details and in much more details about what is going to be there however, you can find all the information in the blocks of clearly nooks.org and That link is all the information inside and the detailed patches of what happened So that's the first thing use the unused resources that you have the second thing is and I put the picture about Traffic because I truly hate traffic and I try to avoid traffic as much as anyone else So I'm big fan of working from home by the way Help the compiler find the most efficient path if you see the picture there you And you're new in the city. It's like when you go to LA, right? You try to go in the highway to in LA and the first time that I arrived there with my car It was like, okay, I'm lost 50 minutes later. I was I had no idea where I was so Find the compiler to find the right, but who knows better what your code should do that you nobody okay, I was in in in the medallinx conference four weeks ago and There was a discussion about the compiler was not a smart enough and At the end somebody asked the question well The compiler is just a tool that we use to generate from source from the source code that we have a binary But the smart guy in the middle. It's us Profiling is something that is not new profiling has been there since years There are two kinds of profiling that is what it's new in the latest version of GCC Profiling in the old times was using as an invasive profiling. Okay There is an advantage. It's very precise Okay, and I'm going to try to do an analogy really good analogy that I found weeks ago There's a disadvantage. It has a high overhead. Yes. It has an eye overhead non-invasive profiling Has it's a small overhead But the disadvantage is not as much as notice really accurate as the other one Here we come the analogy Imagine that you you want to track the performance of one player in a soccer match. Okay What do you what? Let's see that we have two options option first We will put a huge pencil in the back of the soccer player and that is smart pencil He's gonna send information to the server with open stack of where the player has been running During the match in the in in the field Okay, and in the end we will see a nice animation of where the player has been running around all the match That is amazing. Okay, it's really accurate. You know where exactly they get the the the the guy has been running all the game The problem is that he has a huge pencil in the back, right? That's the only problem. That is the thing with profiling the invasive profiling You have to put something inside a code that can track you where the code has been running During the execution of the binary what happened with the non-invasive profiling not in basic profiling same example You put them you instead of putting something to the to the guy in the back You put sensors across the all over the field and you start to measure how many times The player has been Activating those sensors at the end you have counters and maybe with the counters You can realize what are the fields of the match of the what are the parts of the field that the game That the player has been touching more which is cool and you have the capability to more or less guess What parts are the ones that he run more in what time so you can guess a little bit more about it So that those are the two difference between in basic profiling and not in basic profile both are excellent Both are great for some cases or for some others This is an example with in basic profiling. Okay, but in basic profiling we do PTO Profiling for Maria DB and what we did was okay first we took Maria DB and we compile Maria DB with Instrumented then we run the benchmark and after the benchmark we gather all the information of where Maria has been taught has been Executed or exercise it after the benchmark and with that information with pat that it passed an information to the compiler and said Okay compiler. This is the information of what are the paths are the branches that are more They're most executed by by the benchmark of Maria and this is a regular benchmark that many guys in the cloud and the data center use so The compiler take that information if you say, okay, now I know what do you care more now? I can predict in a better way the branches that I'm going to compile now I can manage in a better way the memory and Where can I put the the variables into the heap in a better way so that you can access them the ones that Use more faster, which is nice. So the compiler now knows a little bit much more information and as you can see the performance improvement is Way much better with the profiling thing like around 20 20 20 84 cents Another example, oh by the way What do we have what we did later after that is we put Maria in an open stack environment and we start to run rally Benchmark, this is one of the rally benchmark that the dust transaction per second rally I know I I hope that I think that I'm the only one that was not aware of rally rally is one of the tests to Is the benchmark? Test suite that open stack provides to measure the performance of some stops. This is a transaction per second and the previous one, sorry Is the response time and yes, it was much more better with the use of profiling and Maria was running faster At the end so what happened with when we? Yeah, this is the results in the end that they average time to create 100 users running 1000 time with PTO is 600 I think this is milliseconds and in with the baseline could be 7,000 milliseconds So yes in the end when you ask me as an open stack user or administrator What is it game? What is that for me? It's a reduction in time of The time at the average time that you can create 100 users 1,000 users Which is nice because at the end you can create a user in a less time What happened with the non-profiling? Not in basic profiling technology not in basic profiling technology we tested in AWK okay AWK yes It's old it has been there since Unix But it's something that it's still being used by many guys in the industry and believe it or not I was in shock when I realized that it is pretty much used so what we did was to run Not amazing profiling in a Navy in AWK and at the end realize that AWK can be improved But 80% just by using not invasive profiling and in the end if your opening system can run all AWK Scripts way much much faster. You can discover the path that you're trying to find in your huge text in a faster way What is the goal of action and one of the things that I want to close the presentation? Make the cloud faster and it's not for an offer from the point of view of an open stack developer I like this picture because It reminds me a picture that I saw once in in a pier in San Francisco where it was completely foggy foggy And you it was really hard to walk through you know that there was a path in the bridge that you can Just go on the start to walk, but you start to walk slowly if you start to turn on likes It's much more faster for you to walk through the cloud Okay, so it's exactly the same here Request to your operating system provider to enable the latest technology so that you can your application can run faster It's not difficult. It's not really rocket science. It's very simple So at the end you as an open stack developer you can request to your openness to your operating system provider To enable that technology and make your application run faster through the cloud That's all. Thank you So yeah questions. I guess it's an implementation detail question about the multi Targeted architecture the functional version. Yeah, so like I know with Mac OS 10 They very long have had multi architecture binaries Mac. Oh So Linux in my understanding really hasn't dealt. Well as you explained with multi Multi-architecture binaries Is this part of like the fat elf project you're talking about here? No Is there something different that how's it gonna know if it's what architecture to run if you have sort of this Fat binary with multiple optimizations in it. Yeah, the functional versioning and I was in in in I Was co-working with the Russia team in GCC that did that part Okay, here here comes a patch At the end they detect there is a target clone three target clones and they generate all the assembly Instruction for the three of them they put it into a piece of memory and in the at the end They call they they use a system call for get CPU ID and base it on the get CPU ID They can detect okay if it matched with the with the things that I have I can go there But they usually go with the calls the the CPU ID System call okay, that's pretty fast before This patch the way that function multi versioning was working in C++ was Kind of a least they what they did before was okay. I have abx3 abx2 and abx1 I'm gonna put in the higher priority abx1 if I don't have a baby Sorry abx3 if I don't have abx3 then I go with abx2 and they were guessing so the switching between those was really really slow So that was the way that it was but now it's with the the function call and it's much more faster. Cool. Yeah, thank you more than welcome sure Thank you. It's a good presentation. So I have one question So if we want to optimize the world we want to make our programs running faster even specifically for the OpenStack programs and for the cloud computing systems, so shall we use the What is specific to some algorithms we must use use them to optimize our systems? that's a great question and and Just let me give you an example of when I was starting with this when I was starting with this I joined to the IRC channel from Python In free node and I asked the guys. Hey, do you know how can I make my Python script run faster? And I said you change the algorithm and I say Yeah, but if I have already optimized my algorithm as much as possible How can I make it run even more fast? I mean and they say there is no way Then I send them back the results of a piece of code that was really optimized It was an old benchmark and I showed similar numbers, you know, for example Maria Maria is something that is really optimized And it's check it by million of eyes in every release They say that this is the the faster Maria that you can have Yeah, but if you change the compile the the flags that you compile or use profiling to teach the compiler We're which are the paths that you need to take much more attention. Yeah, you can run your binary way much faster So yeah, it's possible to adapt to a cloud or a bare metal running. Whatever you want Thank you. You're more than welcome. Okay, so Sure So when you say you profiling do you mean after for profiling find the hotspot and change the code or just Profiling itself will help the improvements of the performance No, I'm what I mean profiling is When you do an invasive profiling Let's put in the example you you you have a service code You need to enable with just to see I'm going to build this source code Instrumented and inside the code they put counters and the counters will increase every time that you go through that line It's like when you do cut coverage. Yeah. Yeah, I mean when you use profiling to find the hotspot then you Change the code to optimize it optimizing the certain part you found and then improve from no, I don't change the code I changed the bind the final binary I'll make that I allow the compiler to change the binary, but I don't change any source code any line source code line Sorry, so I still cannot understand. So how can the binary between who is changed the binary the compiler and and okay Let me give you an example Imagine that you have a piece of code with multiple variables or or different variables The compiler cannot detect if in the heap he will put X or Y or seed Closer to your instruction. So in assembly you can have jumps and Inside there, but then the in the heap they can put the one that you use more Let's say that you use a variable 10,000 times Okay, so that you can they can put that piece of variable that variable into your binary closer to the execution line that it's needed So the jumps at the end in the execution time are faster So this is all Automatically handled by the compiler. Yes, sir. Okay. Yes. That's that's the good thing that you don't have to change the line of code You mentioned Python and In your example used are and vectorization are there other things that apply more to Interpreted languages or or that kind of speed up that might be more typical of what we're doing an open stack. Yes Yes, I'm we're doing we did that experiment for AWK. We are doing the experiments for pearl We're doing this We also enable in basic profiling for PHP and we gain 15 percent of performance with the PHP benchmark so we We enable we actually enabled many of the lamb things we enable PHP. We enable Maria We enable we improve the performance of Apache by 35% something like that amazing profiling you can improve the performance of Apache server by 35 40 percent and We're missing Python is a little bit tricky because the way that it is compiled it is is not as friendly for compiler guys As I thought but yeah, we're working on the profiling There are some examples that we have that actually with in basic profiling You can enable you can enable in Python by itself when you build comp will you build Python by hand? Not not when you do pseudo APT get when you build it by hand There is an option that say make Opt arcs and actually that things Build Python instrumented running in an internal benchmark and then give you the latest Python After that that optimization and that gives around 12 to 20 percent performance improvement So most of the results from the from the benchmarking or the performance counting resulting code changes Results not that's a good thing because I'm trying to differentiate the you know the GCC six optimizations versus you know profiling an existing application collecting data and fixing fixing optimizations that could have been done, you know without the GCC six or taking advantage of AVX or The other yeah, that's a great. It's a great great great soon Before GCC six we just had the capability to do profiling in an invasive way After GCC's actually act after the latest version of GCC five, but I'm going to make the commercial for GCC six Now we have the capability to do not in basic profiling. Okay, maybe I Do not I was not clear Before GCC latest version of GCC. Yes, you can do profiling even in Python with even GCC four point eight. Okay, that's fine, but the question is it's a nightmare You know It's like the example that I give with a huge pencil in the back of the guy It's really painful because imagine that you're building an operating system Or even that you're building the Python for your own operating stack You have to build your Python first instrumented then run the benchmark and then compile again And then deploy the thing so with the other way you forget about it You just put some specific counters You gather once and once you have the information you send that information to the compiler at the compiler try to guess Try to guess what are the benefits the world of the the paths that the benchmark are executing more and then just Deploy it, but you have to compile one more one time less. Okay, that is one of the advantage of the GCC 5.0 something will be in six. Yeah So continuing on that question, right? So you have to compile the ones and you Save that data and pass that to compiler then the second time you compare you compare the final image, right? But if you have different program, then you have to repeat that process again Yes, otherwise compiler will reuse the old the data for the other setup program and in that is for Inbasic profiling and that is what it's a nightmare in my case when I have when I receive a mail that says oh Guess what Victor there is a new version of Python or a new version of PHP or a new version of Maria I say oh my god. I have to go Compile instrumented by the compiler instrumented run the benchmark gathered information and recompile again With the not in basing thing that we did for a WK. I mean a WK is not changing in that much anyway but the good thing is that with that other technology you forget about it you just Compile as you usual but you just pass the compiler a flag that say oh by the way use these counters and Try to guess where the the best part is and doesn't matter if the chain the searchings The the source code changes doesn't matter But if the source code changes the counters should change too, right? Not really. Let me give you Okay Out to FDO just putting names is a not in basic PTO is the one that is in basic How does this counter works not in an analogy, but really in a technical word, okay? Intel architecture has one feature and that's hardware counters and the kernel also has software counters. How many of you has used the the tool perv? Okay, what does perv do internally they try to track the performance the counters of what are how? How the application is behaving inside right and can they use? Hardware and kernel counters to give you that information Those are exactly the same counters that out to FDO use Okay, there is a really amazing tutorial of how does out to FDO work? Here okay an amazing tutorial and that will show you how perv is Is you run is using that counters passing that counters to the? Compiler and that is mine. Why doesn't where doesn't matter if the source code change? It's a really great question. It's a really good question The answer is the counters Doesn't is not associated with a line of code Okay, the counters are just activated because the benchmark was running in the hardware and in the kernel So there is no association or direct association with these counter and these line of code Doesn't matter in the other way when you instrument the binary you have a direct Association with the results of the path that you are tracking with a line of code It's like when you get code coverage you have to You have two binaries the one that you are execution and another thing that is tracking The lines that that are executed, but it's correlated both of them and in the coders They are not correlated the problem is that the compiler has to guess I they call it the heuristic I call it guessing But yeah, that's that's the other thing Yep Great question. Any other questions great questions. Yeah, thank you so much Sure. No, okay. Thank you


Peravskite CH3NH3PBI3 light absorber is deposited on the mesoporous TiO2 layer via one-step and two-step coding methods, and their photovoltaic performances are compared.  PC, of 7.5%, while higher average PC of 13.9% is obtained from two-step coding method, mainly due to higher voltage and fill factor. The coverage, poor filling, and morphology of the deposited Peravskite are found to be critical in photovoltaic performance of the mesoporous TiO2-based Peravskite solar cells. This article was authored by John Hayakim, Huisean Kim, and Namgyu Park.


Today, I have the pleasure of speaking with Chris Thompson from e-research. How are you today, Chris? I'm great, Tracy. How about you? Chris, we are huge fans of e-research, and you just did an update on EQ, Inc. and your buy and rating, your target price is the same. Is that correct? That is correct, Tracy. Okay, so let's hit the ground running. I tell you, the more I read about EQ, Inc., the more intriguing this particular company becomes to me. So why don't we start with the revenue and some of the compelling fundamentals that are making you like the stock so much? Yeah, for the quarter that just came in, the revenue was around $3 million, which is what I anticipated. And we're booking revenue this year around $13 million, but really we're looking for the growth from this year to next year to go from about $13 to about $22 million. The company itself has sort of been in a holding pattern because it focuses on consumer data and geolocation data that helps retailers track customers and obviously track and target customers. And so during this COVID time, it's been very challenging for them to get their customers to spend money on this technology when we've been on lockdown so many times. But I see that taking off over the next year as things ease up and companies really then need to find their customers again. They need that there's been a change in pattern of consumption and companies like EQ are going to be very important for these retailers to use to figure out how to get back their customers and get them back into their stores. Who is the genius behind this company? I'll tell you, do they quickly identify challenges? They find solutions. For instance, they've acquired this PAMI, which is open to new line of revenue for them. So I'd like to know a little bit more just about the CEO perhaps or the founders and this PAMI acquisition just looks fascinating to me, Chris. Yeah, so Jeff Rothstein is the CEO of the company and is very focused in the data space and the company emerged from the ad technology business line where they saw that the real key to their business for ad technology was looking at the data, the geolocation data, the customer tracking data, the customer intelligence data. So it was his vision to start focusing more on that line where there is a higher value. And so what they've been doing over the last couple of years is that the majority of the revenue is still from the ad tech space but they're making more and more money from the data side of the business. And so what he's been doing is very targeted acquisitions and the latest one he did was, as you mentioned, was this PAMI acquisition which is, they're like a customer loyalty, credit card loyalty program where consumers get cash back for making purchases. So again, this adds into their database of information that they have that they use. Currently they have over a petabyte of geolocation and consumer retail data and this is just another avenue and also opens another business line for them to go after what we call the B2C, the business to consumer market as well as sign up more merchants on this platform. So they see a growth in this revenue line as well over the next year or so. And you know, Chris, I don't think people appreciate how unique the e-research model is. I mean, you actually have a model that you utilize for assessing the fundamentals of a company and then determining whether or not you should buy this or not. Isn't that correct? Can you talk to us a little bit about that? Yeah, so for each of the companies that I look at, I try to do a couple of different valuation models to allow people to look at my calculations and make their own decisions. In this case, I look at both a revenue model as well as a five-year discounted cash flow or a DCF model and you can look at all of my calculations for revenue assumptions and expense assumptions to see how I believe they're going to drive some good EBITDA over the next five years out of this business line. You know, this is a data business. You know, it can be a very high-margin type of business and you can look at my calculation to derive my valuation. In this case, I look at a revenue model and a DCF model and they both sort of come out around the $2.65 range for this stock, you know, currently trading around, you know, $1.35, $1.40 depending on what day it is. And of course, if I want to get updates on EQ Inc. from e-research, do I go to your website to get an email update or a text message? How does that work, Chris? Yeah, you can go to e-research.com and you can either go to the specific company information for EQ and that you can download the historical articles and reports that I've written as well as you can sign up for our free newsletter and you can get regular updates when we issue update reports. Well, Chris, thank you so much for joining us today, but I would like to extend a complimentary offer to EQ Inc. to do an investor talk with investor Intel so we can ask them more questions about your latest research report update. Great. I'll let them know. Thank you.