Well, hello, everyone. Welcome. Thank you so much for joining us today. My name is Mickey. I'm an analyst and project manager here at Parsons TKO. And for those of you who are just learning about us are joining us for the first time here at Parsons TKO we work with nonprofits to improve their marketing tech business process and integrated data strategies. So today we'll be talking about social media listening what it is in the potential applications for the mission driven sector. So to start, let's start off by defining what social media listening is. So there are two terms that people often get conflated one is social media listening and the other is social media monitoring. So the easiest way to think about these is that social media monitoring tells you what, while social media listening tells you why. Another way to put this is that social media monitoring is looking at your own organization social media accounts and that's tracking things like likes, follows and mentions for your own or your organization specific account on any social media platform. And then we have social media listening. And this is listening to what a broader audience is saying. And so this is what people can be saying about a specific keyword or hashtag and there's different ways to measure this whether it's in a geographic location, or anything like that. So social media listening can be applied in many different ways and one is sentiment analysis. And so just to start off with some definitions that we can get all acquainted with what this is. Social media sentiment analysis is a computer algorithm that is used to determine if a writer's attitude towards a specific topic is positive, negative or neutral. And this kind of thing called sentiment analysis is created using another computer algorithm called natural language processing, which is designed to read and understand human text. And so while these two things can seem very complicated and very computer science see these two things play a large role in social media listening and they can be used to enhance the insights that one can glean from social media listening. So from here we have a handy little chart and so you can see that all the elements that we talked about on the previous slide like emojis hashtags and texts that are gathered from social media listening, all go into this NLP algorithm process to give a sentiment analysis results. And the reason that sentiment analysis can be so helpful, especially when used in conjunction with social media listening is that it can help us to understand the data to create actual action steps for organization, whether that's improving a marketing or fundraising strategy. So now that we got all the definitions out of the way, I'll give a concrete example and I want to show you something that I've worked on personally. And so in addition to my amazing work here at PT KO I'm also the co founder of activism always a startup that works to provide social media listening insights to the mission driven sector. So I'm going to share with you one of our first projects that we did a little over a year ago, called black lives matter always. And with this project we conducted a sentiment analysis of the black lives matter movement on Twitter immediately following the murder of George of George Floyd in May of 2020. Taking the usage of specific keywords and hashtags over a period of time, we were able to form a deeper understanding of how the world was reacting to this specific violent event. Okay, so lots of things on this slide, but to start with social media listening we were able to take this data and create a moving graph that showed the change of BLM always the movement on Twitter over time. So if you look at this moving chart on the top x axis, you can see the number of times each hashtag was used, and how that changed based on how the dates progressed, which is on that bottom x axis. And so by taking all this data into account we were able to distill trends over a period of time by tracking their rise and fall. So what we specifically found was that in the beginning so right in May of 2020 the most popular hashtags were hashtag George Floyd and hashtag I can't breathe immediately following George Floyd's murder. And then as the movement tended to progress hashtags like hashtag Juneteenth rose and popularity, but they also fell again very quickly since they were more focused around seasonal events. And this and then lastly, by the end of June so about a month later after we started this analysis hashtag George Floyd was no longer trending. So even though in the beginning it was by far the most popular hashtag within about about 30 days it quickly went back to the bottom. It's very significant because it helps us get a broader view of what's happening on social media. If we had just looked at a trending hashtag for one day, we would have thought that hashtag George Floyd was the most popular hashtag on Twitter representing the black lives matter movement, but that just wasn't true. So by kind of just looking at an individual, we wouldn't be able to understand kind of a mass sentiment on social media platforms such as Twitter around a certain topic which in this case was the black lives matter movement. What I remember is that because social media moves so quickly it's extremely important to understand not just a moment in time but the bigger picture of the topic that you're looking at. And of course social media listening can be really helpful for that, because it's specifically this holistic view that helps you understand what your audience is interested in. And as a result can help you better connect with them on social media. And so this is where the importance particularly about cultural context comes in. So this graph is one from our BLM always project and this is a sentiment analysis graph which we defined briefly earlier on. And so looking at this graph alone it's very natural to deduce that the majority of the tweets that we saw on Twitter about the black lives matter movement were negative since we see so many since a large part of that graph has those black lines. So what this chart doesn't tell you just looking at it at first glance is that the sentiments don't actually refer to attitudes towards a specific topic, but actually refers to the language being used. So the majority of Twitter users weren't against BLM or in support of ex officer Derek Chauvin, but they actually were using language at the computer algorithm the NLP algorithm, mark as a negative. So just as we saw with the hashtag bar chart on the previous slide looking at one specific instant isn't enough when it comes to social media listening. It's far more useful and also frankly necessary to look at a bigger picture and look at it holistically to understand it and then utilize it correctly. So we have some example tweets of the types of tweets that we use in this analysis. So if you look at the details you can see that it's not necessarily that the majority of the Twitter sphere was anti BLM. Instead they were using rhetoric that the computer happened to define as negative. And the kind of things that the computer defined as negative were synonyms of pessimism, pessimism, aggressive hurtful or crude. So this is an example of a tweet taken action from our actual analysis. The negative tweet uses words and phrases, such as brazenly and senselessly murdered. And those are the kind of words that the computer algorithm deemed as negative, which is true, they're negative rhetoric, but that does not mean that this Twitter user was against the BLM always movement. It's not as easy as it was for the algorithm to say that the majority of tweets were negative. And for us to understand that as anti BLM is just as easy for other all cultural context to get lost in the algorithms, and therefore not necessarily translate to the strategies that we form for our organizations as a result of these insights. Another example is at the top for the positive tweet. You can see that the strategy works that uses words such as synonyms of optimism peaceful and compassionate has words like happy and blessed and love, and in this particular context this algorithm does seem to be pro BLM. But of course it's always important to consider the wide of context of how these words are being used in this rhetoric, and what the larger social media audience thinks about this. So we've talked about what social media listening is what it can be used for the pros and cons. But most importantly it has a lot of room for error specifically when it comes to sentiment analysis just like any form of technology does. So dive in a little bit deeper about how we can overcome these challenges and understand how we can apply social media listing as a tool into the mission driven sector. We have Chelsea ins and a here with us today. Hi Chelsea ins and a. I'm so excited to introduce you both we have Chelsea Louie and Zanae Aquino here with us. And so in addition to her marketing work at PT KO Chelsea is a communication specialist. And she also is a co founder and chief communications officer at activism always. And we also have Zanae Aquino who specializes in computer science and is the head of product management and activism always. And she also major her work at Salesforce as an architect program specialist. I'm going to pull down my screen share for our conversation. So both of you are here today to help us understand how we can apply something as complex as social media listening to the mission driven sector. So to start, how would you each define social media listening and what's your experience with it. I think social media listening is again a complex idea. It's again the observation and collection of what's being said on social media. And again, what you mentioned before in the most important part of that it is how you're listening actively listening and applying it to your own case. So my experience with social media listening is seeing what trends are seeing what's being said and trying to cater my content to increase engagement, and I've been able to do it in a variety of contexts whether it be my own personal brand here at over at activism always with the context of being able to be inclusive to different audiences. And additionally, in the corporate sector to appeal to different architects and software industry. Thank you. What about you Chelsea. Yeah, following up on that. I think my experience with social media listening is a little interesting so I was originally on that BLM always project with Mickey way back. And that was actually sort of my first sort of technical project with sentiment analysis and like working with an op analysis and actually learning all that terminology. I think my background is definitely more in sort of the analysis of that works I've never worked with the actual like algorithms to develop the like social media listening. But my background is in sort of analyzing social media from sort of traditional more like communications practices. And I think in that project I was able to see like all these like sort of traditional methods of going on social media and just seeing what people are listening to collecting interesting posts. And that was made so much easier using these technologies. So I'm coming in with a bit of a non technical background, but very happy to be here as well with my experience with BLM always. Thanks so much Chelsea and it's a nice and to work in computer science and have a very strong technical background I know that we already kind of went over this but how would you personally define social media listening. It's, I guess, in the most contextually appropriate definition. I think the difference between social media listening and monitoring is that when you're listening you're applying when you're listening you're actively taking the insights and curating your content. So I think it's a fair to adapt to that. And social media listening is just being able to take the raw data. So taking your likes engagements, being able to track that and see what works and what doesn't work. In terms of curating your presence because you don't want to overload our audiences with things that aren't necessary things that don't work. So by curating and making that happen. That's I think the most important part of it. That piece that you said about social media listening is applying I think that's so important, especially when we're talking about appealing to our audiences. And so why is it important to be talking about social media listening in context to specific audiences. Yeah, so social media, one thing to note about it is that it's not a single demographic. There are all different types of people who are using the internet we have people from Gen Z, ranging to people in like Gen X. People are being people buying different things to be attractive to them to be appealing to them. So there are different interpretations different backgrounds and experiences.  It's important for people like nonprofit organizations and only be taking up a tone that's only appealing to profit organizations that's an important thing to notice. It's important to cater your information that you're presenting in a way that the target audience can understand by either simplifying it by going into detail about a specific topic. All those different kinds of curations and customizations to make sure that you're doing the right thing with your presence. And I think they set it super well already. I think really the point of how social media listening affects audiences is that those audiences already exist out there. Like, people are already using social media people are existing in these sort of bubbles of different audience types. And most people exist within many different bubbles so I think Zanay mentioned like generational gaps, like young people are probably going to hang out with other young people maybe you're interested in one topic like environmental justice for example, you might be interacting in a bubble of people who are interested in that topic. And these bubbles exist with their own norms with their own cultures. So, trying to like create a sort of communications message, trying to do something with social media. It doesn't make sense to just sort of like put out a message that's for a general audiences. Because most people aren't a general audience people have their communities they have their sort of specifics. So, crafting that message involves a little bit more thinking, and that starts with letting the listening aspect of it. Thank you. And so you already touched on this a little bit but if you could just go into some more detail about why the concept of social media listening is so important specifically to the mission driven sector. Like you mentioned Zanay we know that a lot of more like for profit companies and corporations have used social media listening for a long time but why is it so important to incorporate that into the mission driven sector. I think it's important that the concept of virality in terms of defining that as just high traffic high engagement, and the spread of ideas. It's not limited to just the commercial side of a lot of the world people aren't just appeal to like how much money's been being made or what's super cool and everything with the mission driven sector what I think is really important about that group is that a lot of the times the narrative that's adapted to that is a more empathetic kind of view. And especially as we can see after the whole Black Lives Matter movement took up and momentum and everything that a lot of people are appealing to the human side of the stories being shared. Social media isn't all about just irony and humor anymore it's about building connections understanding different types of perspectives. And in order to understand why it's important specifically the mission driven sector. You could just see how social media has impacted everybody outside of it. Think about go fund me think about like different sorts of like the fact that we're having this conversation as a result of the kind of momentum that social media has been able to you're able to spread the word out you're, and if you're able to increase the engagement for it you can spread so many different types of messages so many different types of missions. And it's important to see the concept of getting popular on social media as more of like more people are willing to hear what you have to say. And I think the goal of building momentum for a lot of mission driven sectors it's just getting your word out getting your cause to have importance in the eyes of others. I definitely want to add on to sort of like the popularity sort of aspect, or even just thinking about in terms of like reach like social media is fantastic for finding those very specific audiences and trying to spread the message and target that sort of word in these much more targeted ways so many people use social media and they use it for so many different reasons. I think, going back to I think the original question you had Mickey was sort of about the concept of social media listening and how it's applicable to mission driven organizations. I think it's incredibly applicable and I think while we're talking about it in like a semi technical way right now calling like social media listening and maybe discussing some of the algorithms. I think it's definitely like tried and true like procedures for most people use who use social media most of the time you're trying to use social media to listen to what other people are listening to, or like talking about. So the idea of using it for your organization is taking those sort of practices that we may have in our sort of individual lives our personal lives, being able to listen to people in social media, and sort of amplifying at targeting it, expanding the reach of like what we're listening to and also listening to things much more specifically. I think this is definitely like procedures that are more common in commercial industries, like Zanay mentioned like organizations who are trying to sell things they're definitely like using social listening technologies, or having like staff members like be involved in social media and listening to what people are talking to about their brand. So I think there's definitely a room for mission driven organizations to capture these processes to maybe do something other than maybe like sell a product but maybe to spread a message about their cause, or the organization their services. I really love that connection between listening just how we do an everyday life in social media listening I think it's really helpful to see something as complex and technical as social media listening is just another way of what we do in everyday life specifically in the mission driven sector being empathetic listening being receptive to other voices I think that's a fantastic point. A audience question from Mary price thanks so much for your question Mary. And so Mary's question is, are there social listening tools that are better for assessing other languages on social. Yeah, to get into this question, but I think it's under, like it's important to understand how the listening happens. In terms of social media listening it's all data driven so what it's doing is that it's taking what's currently happening pulling that information so what I mean by that is that the current feed of tweets, that sort of thing, and you could specify, and then I'll say sorry. And then what you do from that is that you're drawing insights from the words that are being used like if you remember what Mickey was showing earlier in terms of positive negative neutral analysis. So what that is is that there's a trained model that's able to determine like what's positive and what's negative. And so, in terms of actual things in the market that are adapting to different languages, those models need to be listening to those specific languages. At the top of my head I'm not completely sure what in the market is currently appealing to different sorts of languages but that in general structure is kind of what's happening so looking for social media tools that are multilingual in terms of pulling different data from different different like regions different like language specific regions is just an important thing to look out for when you're looking for those tools. That's a great point that reminds me of one of my projects here at Parsons TKO where a client was looking at a specific keyword on social media. That was Spanish and there are so many different variations with accents and different spellings and abbreviations that weren't originally accounted for that they would have missed out on all of this insight so. Thank you for that point. And we have one more question from Mari, which is do you find that some social platforms are easier to listen to than others simply based on the structure of the platform. That's a great question. One thing that I think it's important to note is that once again going back to the sentiment analysis that works the best on and the easiest I think on text based platforms to think about like general Facebook post and tweets. That's like the easiest to run a sentiment analysis on compared to, like, for example, Instagram or TikTok, where you have moving images and like the analysis and the models that have to go into that have to be much more complex. I think just as a quick add on to that I think in addition to the tool or the technology or the platform you choose to listen to. It also depends on your organization itself and sort of like where have, where do you know that you have communities and where do you want to learn from. You're picking Twitter because it's easy or because there's text there, but you have no community there at all, or you're not sure even where to start. It might actually be a bit more difficult to find sort of relevant insights. I think similarly like people on staff of people on staff are really familiar with like looking at Facebook posts. You guys have been posting on Facebook forever. You know sort of what's the cadence of how people post on Facebook will be much easier to analyze at the end of it all. Then if you're picking something like TikTok that maybe no one on your staff uses. So that's also a little human aspect to keep in mind. I think that tangible action step and speaking of that do you have any tips or recommendations for how social media listening can be adapted to the mission driven sector. I think for tips for adaption so like adopting the technology. The biggest thing when adopting any new technology in addition to like social media listening is to remember it's it's never like a one to one adoption. I think I just mentioned that like, just because this tool might be really good and a lot of people use it. It doesn't mean it might be the right one for your organization you might need to tailor it a bit. So for the same example, like if your organization is really familiar with Facebook you know a lot of people on Facebook talk about the topic that you're interested in maybe like the geographic location you're in people use Facebook for like finding things around the services you offer. It makes sense to find a tool that might be more suited for that rather than maybe get use like a big Twitter tool or a Twitter sort of like algorithm that everyone else uses. So I think that's just something to remember. Yeah, the value of the of the technology only matters as much as it's fit to your organization. So yeah, I think that also goes back to I think Mary's question earlier about like languages. So maybe like the English models are like the really popular one. But if you're like doing work that maybe is majority in Spanish, you might need to look for a more specific model maybe more specific analysts to understand that technology. Fantastic and keeping momentum of shifting a little bit from the conceptual theories of social media listening to how everyone here can actually apply it to their organization. So the tools have been used for kind of introductory social media listening, or alternate ways of listening or hearing from your audience even if you're not using these tools. So maybe you have any, any tools in mind. Yeah, so currently the product that we're working on an activism always is this product called Mary Alice. And what the thing that I think is the most important about it is that it provides concise feedback in terms of what sort of what kind of data is being pulled. So the best ways to have an increased presence is like knowing the timing of your post knowing like when is your audience the most active, being able to draw insight for that and timing your posts around that time, using keywords and hashtags, like if people are tracking specific trends or the algorithm itself is grouping specific things how can you make sure that your information is being captured into it. Well, yeah, with Mary Alice is able to track just your own personal trends but trends throughout the entire Twitter sphere and dictate how you can advance your engagements with those in mind. I've also seen one of the most important. I think what's one of the most important things to keep in mind with social media engagement one of the biggest trends I've been able to see right now is that personal engagement in terms of like, how can they interact with your posts that's something that has garnered popularity so whether it be polls, whether it be like retweets and like quote tweets or just answering questions that you kind of have there. Those are what I've been seeing as the major trends through the analysts, the analytics that we've been able to provide, as well as a different, yeah, different just sort of insights in that context. This is cool tool tool that we're working on. And I think, as we develop that I think a much more lo-fi method that you can also use is really just sort of like the manual staff member checking back on your posts. If we're going back to like social media listening as a name it's it's listening to your social media. Thinking about your day-to-day sort of interactions of social media if you're putting out a post on LinkedIn and you see maybe in the notification that you're getting five, 10, 15, 20 sort of like likes or comments.  I think that's a very basic way to be like listening to your social media and actually just like taking the step and taking action with your social media engagement. That's something that I feel like most times we think of and we're like, that makes sense. You should do that and may fall to the wayside because there's so many other things going on. But really sort of the manual labor of going in and engaging your social media audience and listening to them is a very lo-fi way to get involved with at least these procedures. Because I'm sure not everyone has a huge budget to be like getting an analyst that can do sentiment analysis in NLP like at the moment or even like adopting a new tool. So those type of procedures to go back and listen can be really useful. Thank you for highlighting that difference, Chelsea. For example, with the BLM Always project, we were analyzing 10k tweet today over the course of about three months. But that volume of course, the help of NLP and AI algorithms is very helpful. But if you're just doing your organization's tweets or just from one day or even just a smaller part of the sector, it definitely is super accessible just to use those in-house Facebook analytics or Twitter analytics and things like that. And I guess, and last thing to sort of highlight that difference, again, right, like the social media monitoring may be only looking at the tweets or the posts that you put out. And that can be really interesting in lots of ways. You can track sort of like your growth over time. And if we want to do listening, it's as Mickey mentions, maybe carving out a small community within sort of the sector that you occupy or the industry that you occupy and listening to not only like what other people what's happening around your posts but might be happening around sort of like peers happening around like activists in your organization advocates for your causes and trying to like patch those conversations together. And like, is everyone talking about this one topic this week. Why are they talking about it and doing that little deeper research. We have another audience question from Lisa, which is how can you use social listening to identify a target audience or how a brand is perceived by different segments. I feel like that's such a good question and so many people have this question so I would love to hear both of your cakes on this. Yeah, so one thing to note about when you're collecting information and data is that in order to find out if something is good or viral or popular you're grouping things together. So what that means is that in terms of determining different graph demographics you're not necessarily assigning an identity to each individual user, you're more so tracking like okay what's being used popularly is a common trend that you're able to garner from that. As Mickey mentioned earlier, like with the senselessly murder that's high, high volumes of people, typically, not to generalize the people who are having like a higher lexicon with those sorts of terminology is part of a specific demographic compared to Gen Z for example that happened to ironically use like the skull emoji. So, like again different context, kind of are important in order to determine that and from like the data analytics side, we'll get into this later. It's important to have different demographics, or different trends catered to by by having a diverse background of like data that you're kind of filling in. Anything to add to that Chelsea. I don't think I have anything to add to that specifically. I think identifying target audience I think as the name mentioned, you're going to get a lot of data and it's going to be a lot of sorting through. That sort of like procedural practice that you hone in on that target audience and it might take like like Mickey mentioned we collected a lot a lot of tweets over a span of many months. It also requires you building up sort of that's like building up the amount of data to actually be able to sort of like parse out those trends. So if you're doing a more lo-fi method, it can be more difficult. It means more, more tweets that you have to like look at manually. But I think it's part of like, are you documenting it? Are you keeping track of like the tone of the post that you're getting? Are you keeping track of like the sort of sentiment analysis you're getting? Are you getting overwhelmingly positive? Why so? And like following those leads in order to create that sort of target audience? Or seeing at least what audience you're filtering out the most. That ties into a question that Jamie asked about our BLM Always project. And so Jamie asked how we re-identifying the hashtags overall and was that ongoing or all after the fact? And so Chelsea and I will let you both add on to this since you worked on the project as well. But the first thought that comes to mind is that we mostly did a lot of word association. So hashtags that were used also with BLM, such as Black Lives Matter, or Stop the Hate, or anything like that, that were associated or used in conjunction with that BLM Always. It was a lot easier to identify them that way. And then in terms of like the flow, it was all mostly after the fact. Chelsea, is the name is that about right? Yeah, I think it's about right. Yeah. And we sorted both on sort of like major keywords that were used in like different tweets and we also looked at trending hashtags. So those were sort of ways that we were able to do our analysis. I think you mentioned directly sort of the hashtag visualization. But it was really just like from all the posts we were getting and then sifting them out in relation to sort of like the BLM Always or the BLM keyword. And that was sifted out mainly using NLP. I have a follow up question for you from Andrew Courtney and the observation about manual and hands-on. When would you suggest that someone or an organization invests in tools versus conducting it manually? Is it purely based off of volume or some other factor? Yeah, I think similarly to my answer earlier, it really depends on where you're at with your organization, right? If it's sort of the first time you've ever heard of like social media listening at all, I'd recommend maybe doing a little more research, maybe trying to do it manually and seeing how it feels to actually engage with that practice. I would say to not shy away from like contacting sort of like PTKO, we do a lot of work around this type of these type of conversations, right? So contacting someone who maybe have a bit more practice like presenting, consulting, presenting sort of like strategies for using social media listening. That's like one method. If you're investing on tools themselves, that really, really depends on your organization. Like, do you have the budget for it? Do you have someone that can actually like take that data and analyze it? I think if there's someone in your team that's already like, I know what social media listening is, we definitely have the budget. We definitely know what to do with it. If you have like a goal, then to like go ahead and invest in those tools. Invest in sort of like higher end consulting, whatever you need. But until then I'd recommend sort of thinking about doing it manually and then maybe contacting someone, calling someone that can discuss strategies to move forward. Yeah, it really depends. Just to add on to that, I think probably the best application of using tools is in conjunction with that strategic part. Like you mentioned that we do a part since TKO Chelsea. But a lot of time the data is just gathering the data is half of the battle the other half is actually applying it to strategic insights. And Joel has a similar question about that. Could either is an air Chelsea could you provide an example of how the insights that have been gathered from social media listening led to a newly informed strategic or tactical action for an organization. I mean, I can talk a little bit in terms of the bill I'm always project that we worked on. So yeah, I think this project was a bit of a passion project for our team. It wasn't for any specific client it was something that we were just, it was, it was a situation in which we were very passionate about what was going on. We saw sort of the context of it, a lot of what was happening was on social media. It was right at the start of the pandemic people are at home and social media was such a sort of like potent communications, sort of channel I guess. So I think for us, using nlp and using sentiment analysis helped us understand what was going on as individuals as sort of a team of like analysts and researchers to understand what was going on is sort of like the wild wild west of Twitter, talking about these massive protests, and being able to take insights that where we can sort of talk to our friends about it, we can talk to other teams about it. When we're developing a we were part of everyone in our team was part of a mentorship program. So we could share that information and really make sense of sort of like the big conversations out there. This is maybe not particularly strategic or tactical for for an organization because the project was rooted in sort of like personal interests. We were able to sort of take that information get that those like big ideas was big conversations, and sort of create it into a visual like the one you saw with the hashtag graph that was moving. Those big conversations and make it something a little bit more palatable a little bit more targeted. So when we do lead those conversations. We have something to show and something to share. I think in terms of your organization if you did something similar, you can use it to discuss things like major topics in our industry that we need to focus on more. It can be used to help support budgets, it can be helped to use sort of like support where your team wants to target your social media messaging in the future. And can be some type of tool that you can use to sort of understand where the trends are going potentially. So little all over the place wasn't a specific example, but I think really the power of social media listening is being able to listen and take all that information and create something a bit more targeted. Yeah, I'm interested to hear your perspective on this Chelsea specifically as a communications expert. How can social media be applied to like marketing or branding strategies. Yeah, I mean I think the biggest thing is you're able to, I mean we talked a little bit about audience already so able to like see the type of language that your audience is using see sort of like the trends and topics your audience might skew towards like the basic examples like are they talking about this really positively, like is everyone talking about it filled with, like at least generic examples of like love and positivity and happiness on the topic, or people are really angry for valid reasons or is this anger in part because that is the language being chosen by your audience members. When you're creating a message, you can take sort of those inspirations from your audience and how they're talking and being able to create a message that's a bit more appropriate. I think it's so easy to have like really good intentions and being like, this is a great post this is a great message that I think my audience will love. And then you put it out and it's completely tone deaf, even if you have the best intentions, it's being able to like kind of check your work, make your work more targeted. And I know that's something that you mentioned earlier about understanding different generational differences so how could NLP and sentiment analysis and other algorithms like that that are part of social media listening become more culturally inclusive. Yeah, in this case I think it's important to note, like as you mentioned before with the BLM always project you're pulling like 10,000 tweets I believe over the course of like months. When you're pulling all of that data and pulling all of the information from the Twitter sphere that allows you to draw insights of all different kinds of people. So you're searching for like just using a specific keyword and not necessarily considering what other people are saying. That means that the model that you're building the insights that you're creating are going to be curated to a specific audience when you need to be able to look at it as a whole. So yes, again, that's why it's important to see what kinds of words are being used by a lot of people, like be able to be conscious of spelling miscommunication, and also different like contextual differences and different cadences and different kinds of terminology. And that comes again at the diversity of data analytics whether it be the team that's listening to it whether it be the types of information that you're considering is correct. That's what you do when you're looking at data is clean it as in like this term and what isn't contextually correct and what is is, and that grouping once again comes when you're able to keep in mind the different kinds of context. So in terms. In terms of being inclusive in our data collection, making you have to make sure that every person all the people that sometimes fall into the cracks are being listened to, and that you're turning those trends as a priority when you're being inclusive like in the case of sometimes an NLP jokes or references that only apply to a certain community are misconstrued pretty often, or like terminologies being used to intensify a term but it isn't necessarily like captured so I think it's important that the algorithms are just conscious of that kind of data. Yeah, computer struggle sometimes with understanding context, because it's again, you're it's being trained solely by what you tell it. And again it's kind of hard to teach a computer a joke. But overall I think algorithms are working towards building more inclusive models because people are being conscientious of that especially with a new generation coming into the workforce. Anything to add to that Chelsea before you move on. Anything to add on to that specific things and I said perfectly like it's, it's hard to teach a computer a joke I think when it comes down to it. Your computer can get a lot of information and then from there you actually have to make, make the decision of like, do you believe what the computer is saying. How are you going to edit the computer to make it make more sense, and also think about sort of the staff members on staff the analysts you have that are actually working on it. There's so much around like, we have inclusive technologies or we have like inclusive algorithms, or more powerful algorithms but when it comes down to it it really is sort of like the person making that strategic decision. We're getting all this information do we actually like set out a campaign with this language, because the computer told us to or because like the people of color that are on our staff. They didn't give us like a go, or does our staff is our staff actually representative of sort of the messages that we're putting out or we're putting out for like to like put out a face. Yeah, I think when we're talking about like diversity and like messaging, or to be culturally inclusive and messaging it goes way beyond the technology. Sure. And following on that similar vein I know that the industry standard for assessment analysis is positive, neutral and negative. But our audience is wondering if algorithms can recognize things like sarcasm nuance justifiable anger, sadness, etc. To answer that I think you know go back to remembering that a computer only knows as much as you tell it. So, in terms of senselessly murdered that negative kind of context, sometimes when you're doing that cleaning itself you have to be able to catch those things in the track, or in like the cracks. And that once again comes from like a more manual sort of thing. So in terms of capturing sarcasm, like, in order to do that you need to be giving the computer different kinds of context telling it what's right and what's wrong, training the model and being like okay this specific wording of this is right, the specific one is wrong, and that sometimes comes at like the cost of more time and processing that needs to happen. Otherwise, it is possible, but in the industry right now it's a challenge. I love that piece about AI that you touched on we didn't really cover that in the presentation but all the things that we're talking about our artificial intelligence and so just as in a said you have to train the models. So they have to be given that information in order to understand those different things and so if these models are trained explicitly on Gen Z humor which can be a mess and we can say that because we're all Gen Z. then they may understand those types of things more easily. Right, and jumping to our next question so part of the purpose of social media listening is to expand your reach, because there can be such a wide range of users and audiences, but because it's not very common for the mission you've been sector to have diversified internally, it could be hard to gauge for what that cultural context is like you were saying for on staff members Chelsea. So how can social media listening help mission driven organizations better understand their audience but also vice versa. So I'm taking this question is to see like, how can social media listening not only help like the organization craft the message for the audience but maybe how it can get the audience to like interact more with the organization itself. Awesome. I think it goes back to what I was saying about like the tone deathness of a lot of social media messaging, especially if you're an organization that doesn't have a lot of experience, like crafting social media messages, or crafting sort of like very targeted communication messages. So being able to create a message that resonates with your audience that uses language that actually catches our attention, or keeps their attention, or actually feels comfortable for them to engage with is huge. I think it's easy to be like here's my standard sort of press release type language that I will I will put out into the world. And to expect people regular everyday people, like most of us out here to to feel like compelled to actually reply to that post, or feel compelled to like do something with that post other than seeing it as like, Oh, there they posted a new blog. Is is really, really powerful I think it's it's sort of like the organization taking a step out to understand the audience for the audience to take a step back, or take a step forward and to understand the organization more. And when we're talking about sort of like inclusive messaging or culturally sensitive messaging it's thinking of like, when we're crafting these messages we have so many different people out there. It's really, really rare that you have a audience that's totally like, that's totally like, what's the word. I can't think of the word but the word to say like everyone in the audience is exactly the same right. So creating a message in which like everyone's getting a little closer together the audience is taking a step forward the organization's putting their foot out to really try to like be closer and actually like have a better more valuable conversation that goes beyond the sort of like, I'm an organization that does cool stuff but I will share it in like a bland general audience kind of way and expect audiences to, to take like five steps forward to engage with that. Yeah. I'm not sure if I answered that Ricky so tell me if there's anything you want me to add. I think that was fantastic thank you. All right, so our last question I have for both of you is, how can we imagine the future of social media listening. What do you wish could be done differently and also how could it be improved. I know. Yeah, it's a heavy question. Like, how are we going to advance this as a whole. I think in the market right now most social media listening tools are looking at your own personal kind of engagements as in like, you're only finding out what a post of your own are working. But as you mentioned before I think it's important, or I think the industry needs to move in a direction where you're listening to all of the trends as a whole, like you're listening to all the different kinds of things that exist in the spaces, so that you're catering your content just to like what you find individually works but rather what works in the context of like the social media space as a whole. So, like, again, like listening, going back to what listening is in general when you're a good listener you're taking the information that you're learning from another person and applying it to your response. So if you're not if you're just building off of what you said previously you're not going to be seen as like you know, an emerging kind of speaker or that sort of deal. So by just applying that knowledge from seeing what other people are saying seeing what works. I think that's going to really shift the way that organizations and also people are dealing with their social media. And I guess to just add on to that I think the one thing that could be improved I think is that a lot of this technology and a lot of this work is is described as highly technical because you are using those algorithms you do have to like run those tools. And that typically requires someone that has a bit of a technical background to be able to do that. But when it comes down to it it's it's sort of like, as the neighbor already said like it's it's listening it's good listening. And these are tools that like make that good listening easier and faster, and you can get a much higher volume of information, but it's good listening. And it really starts with like social media literacy within your organization like does your organization care about it. And does your organization sort of care about like being better listeners and having better literacy about your industry about your peers about your audiences. So, yeah, I think that's something that comes to mind of what can be sort of done differently is like shifting how we view it as something like, doesn't have to be an expensive tool or any very technical like, like thing that you have to adopt on the go. And as like the world is shifting feels like everything's moving so quickly but it just requires like, do you care about social media as a communications channel. And if so, are you listening to your audiences to make good social media like communication practices in your organization. And then the tools come with, with that developing sort of procedure, those developing practices. That's amazing. Thank you so much to both of you for all of your amazing insights Chelsea and Zanae I really appreciate and also thank you so much to all of our attendees for joining us today we're so happy that you're able to come. And we also would love to stay in touch we have our LinkedIn page and group links up here for you to join. It would also love to talk with you one on one about how social media can help your organization and how to adapt it and adopt all of those complex technologies that Chelsea and Zanae


Welcome, everybody, to this session about the beginning and profiling tools in the Linux kernel. So why this session? It is in fact a consequence of many questions we have at the end of the moment. So it's a company that is about BSP adaptations to various hardware and BSP making, drivers development, optimizations, time, good time, power management, things like that. And we have a lot of questions from our customers that encounters problems saying, oh, okay, we have that problem. What can we use to debug the stuff, to profile? Okay, we have fast boot demos and to really profiling the boot times and things like that. What can we use for that? So all that, we take a little time to do a listing, in fact, of available kernel features for debugging, profiling, tracing, and finally do a listing of the tools that exist in the community and that use those features. So this, I think all of you know what is tracing the debugging, profiling about, but just what is important, in fact, it's to remember that when you do that, you will have impact on what you are tracing the debugging or profiling. So it's quite the high number principle when you see the stuff, you're not really seeing what is really doing in the normal world. So tracing, it's specialized use of logging in a debugging purpose and you will modify your source code so you will have impact on your runtime. Interactive debugging, you will have also impact, but it is binary modifications and you will need special software and when you provide, you are sampling your system so at each sample, you will have impacts on it. For the features, oops, sorry. Well, we cannot speak about tracing without speaking about print card. I think it's probably the most commonly used function in the kernel to do tracing. So its first purpose is logging, but it is a lot used to do the debugging. So when it logs, you don't use a circular log buffer, sorry, and so it can be called from any context. It has not logs or things like that, so you can use it also in any context to activate it in the configuration, just use config print card. You can, you will have its outputs on the console, on the current console of the system generally, but you can configure that in the proc file system and you can use the DMSH tool to have all the circular log buffer entries. And in its formats, it's like printf, in fact, you just don't have the float, because there is no float in the kernel, but you have specialized formats. Something you can do is see documentation in the kernel sources, in documentation print card formats, you will see that is a lot more of the formats commonly used. You can print buffers, things like that. Well, now print card is done. Debug FS, it's a great feature of the kernel, quite recent. And in fact, it's like proc or sys, procFS or sysfs, it's a specialized file system, RAM-BAS, and it is dedicated to kernel debugging. With proc, normally you have rules, you only put processes, information on the file system, since you will have all the kernel objects and the information related to these kernel objects. And you have rules for developers to put only one value per file and six like that. In the Debug FS, you can do whatever you want, just about an interface for the user-learned to have kernel debugging information. So to activate it on the configuration, Debug FS, you just have to search for Debug FS, find it, it's in kernel features. You can read more about it in documentation file system Debug FS in the kernel sources. And on most systems, because it is mounted in the sys file system under sys kernel debug. It is important Debug FS because it is used by a lot of other kernel debugging features and by a lot of tools. And has an interaction between an interface to configure traces and things like that. So we had Prinka, but Prinka has eye-overed if you don't protect it with branch or things like that. So it was common to protect with macros debugging and stuff like that. Now you have a feature, it's dynamic Debug that is able to activate or deactivate at runtime some kernel information code. This is general. Currently it is essentially pure Debug and dev Debug that are branched to dynamic debugging. And in fact, there is in the Debug FS file system, a specific file, so dynamic Debug control. And this interface lets you either have all the dynamic Debugs that you can activate or deactivate, so list them all. So you can just do this control file and you will have lines of formats, activatables and activatables per module, per function, per traces. And when you echo with a simple query language, in fact it's based on the simple query language, see dynamic Debug how to see all this language. And you can echo strings with, for example, the name of the module plus p, it will print all the traces corresponding to that module. It will activate those traces and you minus p it will deactivate the traces. So you can activate and deactivate specific traces in specific parts of the kernel. Great feature. So, but this is mostly about tracing, dynamic probes is a good enhancement since Prinka, but there is also more specialized things to do probes. Problem is, okay, what value has this variable, where am I in the kernel, things like that. And during heavens, okay, I'm passing from this, I am in this code flow, so I want heavens corresponding to that. There is two kinds of probes, static, dynamic ones. The static ones are more tracing oriented. And it's, well, Prinka is part of the static probes. It's the, how to say this, the less featured static probes. So generally they use branching and with the built-in expects of GCC. So with predicts of branch, it is the static probes when activated are unlikely branches. And they always have a low overhead because there is always the if and some variables. So even when not activated, the on or off stuff will be tested. Dynamic probes are more debug oriented. And it's more like break points, you break your original code to do other things. So when it's off, you have your original code, so no overhead. But when you do actually break and do extra things, you will have potentially a higher overhead. And you need for that to install it, you will need debug symbols and knowledge of your map, of your kernel mapping. But this is really general to be more specific in static probes in the kernel. There is, there was the kernel markers that were replaced by trust points and trust events. So what are, well, kernel makers was embedded the tracing code into the kernel, into the kernel code directly. So it has quite a high overhead and it was difficult to tracking the instrumentation code. So trust points were added to and were made to replace kernel makers. In order to separate instrumentation code from kernel code. What does that mean? When you want to use a trust point, you will declare it, you give it a name. With a specific macro, you will give it the prototype of the probe that will be associated to the trust point. And you will give the arguments names. You have a macro to define it on the implementation. And on the module that shows the trust points that want to trust things, you just have to call trust the name of the trust points you gave. The name given to the trust point. So there, when your module, when the code will reach the trust name function, it will put events when on, it will put tracing events. And you can, how to activate or deactivate these trust points, it's to associate a probe to the trust point. By using another module, for example, the common use of that is you make a little module that initialization will do a regressor of a probe. So the callback here to the specific trust point. And at that time, the trust point will be activated. And so at each time the code hits trust name, it will put an event and it will call the callback. In the callback, you can do print card, you can do whatever you want, associated to the trust points event. You unregister the trust points when you're unloading the module and it will off the trust points and trust name will have quite no overhead. So to activate it in the configuration, complete trust points. And you will have more information than that on documentation trust trust points. So for the trust points also, before 2637, there was, okay, there was for each trust points a branch. And a branch on a global variable, variable generally. So when activated, it was doing the, it was calling the callback. And when no activated, just the problem of the cache miss because of a lot of global variables. And essentially that problem and the branching stuff that do a little bit hover it. After 2637 to betterize the thing, there is a more complicated, more sophisticated way of doing. By when you're compiling your code, the trust, in fact, with specific linker stuff, it is replaced by no ops. So virtually you have no overhead on your trust points when they are off. And when you register and unregister your trust points, so the props on your trust points, it will replace dynamically. There is a table with the places where the name of the trust points and the place where replaced the no operations by actually the call to your callback. So when off, trust points has no overhead and when on, you have your trust. But there was still something to do. It's register and register and the second module stuff, making a little module to register, to register props on trust points at loading and register them at unloading. And so it was not easy to use. Trust events have been added for that. It's quite an event system for trust points by adding a ring buffer and a debug interface. So now when models declare trust points by the trust event macro in the root fs and through the debug fs. So in the debug fs tracing and there you will have a lot of files where you can catch all the available trust points. You can activate them, you can activate even per events. So directly on the console, you can manage your trust points and activate or deactivate them on the kernel. When a trust point is it, it will commit a binary buffer corresponding to the trust event in a ring buffer and tools like ftrace, lttng, perf will see them and the debug fs interface will be able to retrieve the entries in the ring buffer and then it will be formatted in string formats and single highlight. So with trust points and trust events, you have really a differentiation between the real kernel code and the code that is used to format, to instrument, to actually do the callbacks and things like that. So instrumentation code and kernel code, more easier to maintain and things like that. Card probes, great stuff but these are for the second part so the dynamic probes. This is not trust as you had to your code. There are events you can add in the binary code at runtime. It's not modification of the source code, it's modification of the binary image. So for that, it will use software breakpoints. We will see specifically how breakpoints works on the next slide. You can activate it with config card probes and there is more documentation on card probes in the documentation part of the kernel. In fact, when you want to register or unregister a card probe, it's like trust points, not trust even, but trust points. You generally need to do a little model that at its initialization will register the card probe and at its initialization will unregister the card probes. And the card probe is just a structure that will say, okay, I want to have an event on that symbol name of the kernel, potentially an offset in the symbol, so you have a function name with an offset in this function. And when you hit this point, and when this point will be hit, the function pre-handler you put in the structure will be called. The actual original code will be down and after the post handler will be called after that and it will return to the original place where you were just after the breakpoints. So on ARM, something interesting is that the actual implementation of the breakpoints will depend on their architecture, of course. And on X86, you will use intree or things like that. On ARM, you will use specific instruction that is guaranteed by ARM to be an illegal instruction. So in fact, you will do a fault. To manage these faults has a breakpoint. And then save the context, do your pre-handler, original instruction staff, post handler, and then restore the context and just come back just after the breakpoint. Now, more stuff, more for profiling purpose. There are the perf events in the kernel and it's mainly an API that will abstract all you can find on modern CPUs. So you have PMUs, you have on ARM it's on the co-processor of 15. So you have special registers that contours and performance contours and performance registers. You can manage to record events on the system and how much you missed your catch. How much you hit branch, things like that, the sequels of the CPUs. So generally on the CPUs, you have a limited number of those registers. But you can ask to the kernel, okay, I won't say you have four registers for that. You can ask 10 registers, 10 perf events. You will map each perf event to some countries and to the four countries you have, to the limited number. And it will manage, it will count in fact on the hardware countries in a run-robin fashion. And for so, say you want singles and cashmere and a lot of other things. You will have sometimes singles in some other time cashmere and on the registers, on the hardware registers. And the rest of the time, it will be statistic, it will leverage between two real measurements on the registers. Okay, it has also software, so perf also provides software events. So these are not using register specific hardware for that. You just use automakers in the code. Okay, so all these features are great, but we saw that you have to load models. You have to, some of them use an interface on WFS. It's not that easy to use every day. So what are the tools that make them a little bit easier to use? Well, we can start with Ftrass. So Ftrass is also something in the kernel that use features from the kernel. But it proposes a lot of various tracers, a lot of tracers are available. Time sources, it can use local CPU clocks. So clocks that are not guaranteed to be a coherent on all the CPUs, but that are quite accurate on one CPU. It can use the global monotonic clock that is less accurate. Of course, it can use also if you are not interested in timings, but in events, atomic conjures, the less overhead you can have. There is no locks. Global clocks have a lot of overheads. Global clocks have a lot of overheads. So with Ftrass, you can give a lot of filters. You can filter on function names, you can put generally on function names, on events. It supports also, so it will use tracers and it can use K-Probes also. And you can do all the boot tracing using command line, kernel command line. So you just have to, on the command line, you put Ftrass equals the name of your tracer. And the tracers will start as soon as possible for the, when the tracers point framework in fact is activity. So basically Ftrass will put some stuff that when you hit a function, you will be, not really a break point, but you will be, you will do extra thing that will log this entry. And there will be extra thing at the exit, that will log the exit of the function. And it will time, it will take timings of each function execution. So you have some examples here of tracers with Ftrass. So Ftrass is only based, the interface with Ftrass is only based on WFS. You don't have to have other tools with it. And you have again in WFS tracers and the files there, you will have the available tracers, the current tracers that you can activate, the filters. You will have tracer per tracer, a lot of information. You can activate the activate them when you want. So the function tracers, each function, you have a branch function tracers that will give you for each function trust the stack. Stack tracers, branch is for if and things like that, sorry. And the branch of the stack tracers for the stack of the calls. Hercules off is something interesting. It takes the last stack that gets to the biggest time passed with Hercules deactivated, for example. So you can have a lot of information there. And you have for Ftrass, because again, it's console based and when you have a lot of tracers, events, things like that, it's quite difficult to organize them and to analyze them. So you have some useful tools like trust, TMD and Kanochak. You can take them on Git. There is a Git repo for that. That will take your tracers and try to analyze and do second cell and graphic. UI to use them. LTDNG, it's a little bit like Ftrass, but there is like Ftrass with more UI and more functionalities. It can use trust points, card probes and couldn't like Ftrass. It is only available in models and LTDNG is the best. And seeing important with it, you can debug and trust in the kernel, but you can also do it on New Zealand. It provides libraries for you to be able to put trust points on your programs and things like that. And have complete tracers and probes and the beginnings from your application to deeply in the kernel. So here, an example of LTDNG with the Eclipse plugin. So in Eclipse now, you can download a lot of stuff from KGDB plugin to LTDNG plugin to trust point plugins. So you can have a lot of different UIs, especially for Linux debugging and trusting. The debugger is talking a little bit about KGDB. It's in fact an implementation of all the GDB API in the kernel. So you can use your toolshins, specialized GDB, so generally you have a GDB associated to your toolshins when you are cross compiling and things like that. You can use it with the KGDB stuff of the kernel because it's in fact an implementation like GDB server on the user land. It is an implementation of the GDB API in the kernel. Breakpoints, watchpoints, all the step by step is all quite architecture dependent. So there is a really big framework for KGDB in the kernel. And it will use when it can, hardware breakpoints, hardware watchpoints, things like that. It depends also on the stock you are using. For example, Cortex A15 has a good, is well supported, all the watchpoints stuff and things like that. All the co-processors that use the PMU and co-processor 14 that use the register for watchpoints and breakpoints are well supported. On Cortex A8, the last time I've seen it, there was no support. On Cortex A9, you have only one hardware watchpoint, for example. So it depends and it evaluates, of course, also. So you have to keep you informed on the architecture evolutions. So KGDB, like LTTNG, have an Eclipse plugin and you can do early, you can do early debugging with it also. So using KGDB Box, these are common lines, arguments. So KGDB wait, for example, we say to the kernel, OK, we will do a GDB session. So you will wait for the GDB connection before continuing, after having set up the GDB framework in the kernel. KGDB is like, a little bit like KGDB is the burger, but it does not use the same framework. It uses K-probs to do its stuff. And it has also traspunt supports and serial internet transports. I think the last time I checked, there is also an Eclipse plugin for it. So it's like KGDB, but not quite like KGDB. And it's not in mainline for now. For the profilers, well, there is Perf. So Perf, we saw that it is an API, but it's also tools. So there is two parts in Perf, and they are localized in the kernel sources. Under tools, Perf, you can cross compile there. So in fact, when you do make and you activate Perf, it will do the tools also. So like Ftrass, there is a lot of profilers. There is a lot of trust within Ftrass. In Perf, there is a lot of profilers. And you can sampling based on events. When you hit an event, you will start your sampling. And you can deactivate it through WFS. Like Ftrass, it has WFS interface. And you use Perf at the command line to activate events. So the best is to go in the kernel, see under tools and Perf. You see all those tools. And you have the Perf tool. And with the Perf tool, you can put, okay, I want to try. I want to have a profiling of cache misses with that program. So you have your user program, your launch. And I want to know how miss a hard, how cycles I've done in the CPUs, how things like that. So just Perf minus E, the profiling you want. And the heavens you want. And the command you want to profile. A word on a profile on x86 is different. But a profile on ARM, it uses Perf as its backend. And it's also profiling too. So here, an example with Perf tools. So here, a Perf top. So you can see how much you entered CPU idle, for example. A lot of times. Reports. So your reports when you saw the cycle. So function preferences. Well, quite obvious in fact, all these tools. Time shots to have an idea of the scheduler and the scheduler work with your program. So here it is where your CPU is running. There is deep dependency sleeping. So this is the scheduler image of what is going on your system. There is little tools with that that can use, for example, G-Prof 2. That can use Perf samples or samples with G-Prof. Or samples that can use a lot of different samples. To, in fact, and using dots to make a graph of what is going on. A profiling graph of what is going on your programs. From the user line to the kernel. From graph also. So this is more for the kernel. You can see. So the time taken by and with the stack, in fact, for each function. Another thing for profiling memory leaks and memory monitoring. So in the kernel, we speak about some of the features. The most important ones. When you go to kernel hacking, you will see that is a lot and a lot of stuff. There is K-Profs and Perf. There is trace points. There is all this and all that. But there is also slab info. For example, to have information on the use of your slabs. So the memory. You have code to debug spin locks or to debug locks. You have debug features for all that is lockless algorithms. Like R-Series, read copy updates, algorithms and things like that. Really, there is, I will say, dozens of profiling in the beginning to stuff in the kernel. So, and can only, for example, can use some slab info and things like that. And it is also in the kernel, the hacking part of the kernel. And it is like a valgrind for the kernel. It will valgrind when you use it with memcheck. It will collect all the calls to kernel and things like that. And when you hit K3, it will remove those calls and log at the end. Say you, okay, you have done that Camelock, that Vimalock and things like that. And you haven't freed it. So here, for example, reports of Camemlink. So you see you have the stack that goes to the allocation of your objects. Of the memory that you didn't free, free. And you have stack information, gfiz information, things like that. Like write-grinding. Write in the kernel. Some tools, quite important also. System tab. So it has, system tab is quite important in the kernel. It has support for all the stuff in the, all the features, debugging features of the kernel. So caprobes and can do light with debug with caprobes. It has support for transparent and for perf. So it's quite all in one tool that will use all the kernel features to try to give you information and debugging. It's like, in fact, when you want to compare it to something, in Solaris you have the detress functionality. You can do scripts and you will add whatever you want at whatever point in the kernel you want. Function call, things like that. It's the same in system tab using caprobes, trispoints, perf events, things like that. On your host, you will build, you will script some things like this, for example. So this, you have the script syntax. And here, for example, we will change the MTU when we, we get to the function tgzware getStacks in the module tgzware. So there, when the function is hit, it will call the function just we declared here and change the MTU at runtime. So this code will be inserted in your kernel by, in fact, a module that is built from your script. With the, with the tab that will parse your script will generate a source file. You will build for your kernel and when you will load your module, you will have the information. What's, it is useful not to have a deep knowledge of caprobes, trispoints, things like that. You can do it yourself or, of course, you can do your model yourself using register caprobes, trispoints, registering, caprobes, registering, things like that. System tab from just a script will do that for you. And you can, that way, manage to construct a script base that you can reuse after to make the beginning and profile. Some words on kexec. It's another functionality. It's quite different of the others. It is, in fact, kexec is, in fact, a second kernel. It's a specific call that when you, you can set up to when you, when your first kernel crash or has a oops or panics, it will reboot automatically on a new kernel and give you the old memory, access to the old memory in a health format from drug VM call. So on your new kernel, you will be able to debug the old kernel that crash, panic, things like that. And this is better done with the crash utility. That will, that is a utility that simplifies, in fact, the, the rate of course and things like that. Okay. So we've seen that there is a lot of features, lots of tools, in fact, in the kernel. What it is lacking today, it's more something like simplicity. Because you have a lot of tools, there are special offers things. You have the begin first interface, you have UIs, you have a lot of features. Since you pass from models and things like that. But the, there is no real, perhaps system tab, but even system tab, you have to put scripts and things like that. There is no really a tool that does all the stuff and simply does, does what you want. And it is like doing average ring and just, and correvency between and connecting Heavens to others. And something, the correct timelines and things like that. Sorry. Okay. Thank you. I think it's time. Thank you for your attention. And if you have any questions. The list overhead, I think it depends the list overhead. I think it's breakpoints and caprabs because you don't have it when it's not activated. And on caprabs, when you put a probe, when you associate a probe on a trust point or when you load your model and you register your caprabs, for example, there you will have the overhead because you associate and you activate either the breakpoints, either the trust points or things like that.  And caprabs, for example, has no overhead when they are not activated. When a probe or a function is associated to the probe, to the trust point, all the other things, there you will have the overhead of the branching or the breakpoints and the overhead of the call of your function. And the word, so it depends also of the probe or of the callback. If I just want to print. Print K, you will have always your overhead. If you, the least one is perhaps, well, for a print K, I will say a trust point. Because you have a low overhead for the branch and you don't have the overhead of the context saving, context restoring and things like that. It's just a callback. Yeah, it keeps the memories. Well, Hanks, Hanks, Hanks is more difficult than for the, for the panning is that, that reboot or the panic that I think it's more KGDB stuff oriented or more debugger. If it's a crash, it's obviously a debugger or things like that. Well, maybe just seeing what the stack press, but a debugger for crashes, for oops, for panics. It depends a little bit what makes panic. If you are, if you want a complete image of your kernel at the time of the panic, it's quite difficult. You can have, you can try with the debugger, perhaps with watch points, if possible, if you have an idea of where it is going. Well, you have timing problems in there. I don't have really the, the demisage buffer directly. It's a good point. The rest of the same. That's good. If I have this one. Yeah, exactly. You want to do that on the disk? Yeah. Yeah. But this is how it's gone.


The mathematics of Egypt, Mesopotamia, and India was largely prescriptive. Do these things to find an answer? Pythagoras is credited with having introduced proof to mathematics, but there's no evidence of any Pythagorean proofs. And in fact, the earliest known proof seems to be from Plato. Plato lived in Athens in about the 4th century BC. He was a student of Socrates. Plato commemorated his teacher by writing a series of dialogues, ostensibly conversations where Socrates asks leading questions to illicit responses. Most of the dialogues involve Socrates questioning an expert and showing them to be foolish, stupid, or inept. Socrates was eventually tried for corrupting the minds of youth and ordered to commit suicide by the authorities. Plato himself founded a school in Athens. The school was located in a grove of olive trees dedicated to a local hero named Akademos, so it was named the Academy. The entrance to the Academy had a sign.  At least that was what Johannes Philoponus said, a thousand years after the Academy was founded, six hundred years after it was destroyed, and a hundred years after it was closed, from six hundred miles away. Uh, fix the geography? Thank you. In Plato's dialogue Meno, Socrates and Meno discuss the nature of virtue, whether it can be taught or whether it is inherent. This leads to a more general question of knowledge, and Socrates argues that knowledge is innate. You already know things, but you might not know that you know them. To prove his point, Socrates' question is a servant, a person with no education. And Socrates proceeds by asking questions. The key question Socrates asks, given a square, how can you make a square with twice the area? The servant initially guesses the side must be twice as long, but Socrates asks leading questions, and they realize this is incorrect. Socrates then has the servant consider the doubled square more carefully. Again, by careful questioning, the servant realizes the diagonal produces the doubled square. Thus, they deduce, the diagonal of a square is the side of a square with twice the area of the original. This dialogue in Meno may be the first recorded proof in mathematics.