Yeah, well Tom already started here. Let's get started. Okay. Let's do it Welcome everyone to the Microsoft 365 productivity tips October ousting It has been you're making up words now my friend. I know it So it's been since June or do we know yeah, June not July so like that. Yeah, we took vacation What can we say Tom and I we needed some time apart to know Let the love grow stronger and we're back.  I know that and what's what's difficult about taking a three months break Tom is like I'm I have three backups because I have absolutely no idea There's so much that's happened in the last three months. I have no idea what you're going to present And there may be overlaps here. So hopefully not but it's it's it's interesting because I will admit I was starting to run low on content that I had stored up And we've done some different things internally and so I put out a lot of new content lately And I decided, you know, I'm gonna I'm just gonna put one backup tip in case we duplicate and I think no I'm going to go through and actually put all my content into a single slide deck What I send you will be the ones that we used and I'll have my slide deck ready for next month Exactly. No, I've got much the same. So it's uh, so I've got the multiple backups just in case but Just to kick things off of some introductions for those. I know it's been a while My name is christian buckley. I run a company here in lehigh utah called collab talk I am a nine-time Office apps and services mvp started in a share point world also my regional director, which nobody knows what that is. That's all right You can find my blog at buckley planet.com And that's me and tomas And this is me. I need to change that picture. I've got a different picture. I'm using now. Okay, so anyway um, yeah, I'm I'm not an mvp and I don't have a manager title. I'm just a regular developer type person and I work at kambi health and that's a Health insurance firm in the pacific northwest even though I am based out of Minneapolis And I run a blog called one minute office magic, which is where you will find these and many other tips Yes, excellent. And we do this as we said we've been doing this for Almost four years and off and on we take a couple breaks like the last three months And the reason for that folks too is just because With vacations and and everything else and you think hey, we're all working from home You think we'd have time no, there's been so many online meetings and events that have just made Scheduling difficult every time I look online. You're in some other You know meeting sequence or yeah, there's just a lot twitter tweet chat or yeah, just it's I'm like, wow, you're a busy man Lots going on but the leaderboard tom Is dominating the boards currently We are keeping track and for those that are interested. I mean we do have Every one of these of course all the recordings are out on youtube. You can go find those Just a youtube slash see a letter c slash collab talk and you can find all of them out there Search on tom's or my name on youtube. You'll find all of them But all of them are out there. They're also um out on My blog at buckley planet every one of them catalogued and the one nice thing that we do is that because we're going to cover 10 tips Is I provide a link list? On the blog post so you can jump right to the specific tip that you're interested in and something that I've talked tom about for years One of these days will do it That searchable database in the blog and yeah, yeah, I know So anyway, yeah, it'll happen one day But we're going to give everybody a chance to vote on each of these but let's go through the rules of engagement since it's been a while Um, so we're going to take turns. So we're going to share top tips We're going to go back and forth. We don't know What the other person's going to present but there are no duplicates Meaning if my number one is tom's number one He can't present the same thing. He has to shuffle it up and have some backups And present something different and that's happened a couple times one for each of us I think the red challenge flag was thrown and we had So we're going to do a quick poll at the end of each round So it's it what's interesting about this is that it could be like Tom shares an outlook tip and then I share a one note tip and it's in apples versus oranges But you need to vote on which one you think Will personally Help you that you think is the better tip that you're more excited about so or which individual you might want to Suck up to in case they may need to do something for you in the future I'd like to say empty threats, but I know I think he's serious. That's how The kind of person tom is I think he that's that if you vote against him how vindictive he is ethics schmethics who cares And so I don't know just take that into consideration when you're voting And then there's the no hitting below the belt, which we've You know one of these days I'm going to I'm going to come in at like six four and that's not even going to be relevant anymore All right Winner based on overall voting and then we move forward and that's it. So, all right We're going to get started. So I'll kick things off with the first round Ding ding and there's round one. Yeah, ding ding ding Okay, this is one of my favorite tips been using it a lot. It's a small one, but a powerful one Transcribing your videos in word for the web. This is a cool feature. This I absolutely love this I'll just be clear that this the caveat is it's only word online It's not for the desktop app because it relies on the cloud and there's a lot of processing that involved So what you do is you go up into and I think I've got my I think people understand what this is if you are like me, I'm doing more and more in video I'm doing interviews with clients With team meetings with user group meetings I'm capturing those recordings and of course if you're saving that up if you're recording your team's meeting, for example It's capturing and creating that transcription and it's in stream But if you've ever uploaded into stream or over into youtube for example And then gone and try to pull the transcript down and make that usable It's almost Less worthwhile to do than just to listen and type it yourself It is I mean all the formatting that you still have to do in the cleanup. It's it's awful And so I've always wondered like why can't microsoft do something where I can take a pre-recorded Because the one of the limitations of some of the other transcription software solutions third-party tools that are out there is that you you weren't able to until more recently Even upload existing interviews or files that could only take live audio kind of in real time and do the transcription Well, now you can go over into word and I've touted this in the past that you can use the Transcribe and do hands-free. I use it when I'm driving and I'm taking notes in outlook or elsewhere But it's what's great is uh, you can go into that Uh dictate in fact, I've got the screenshot here. I don't have one in there I'll come back to why I don't have an example to show you here one because I've got customer interviews I can't show you some of that detail But you go up to dictate And you've got the transcribe But you it allows you to upload That your file so you actually upload an audio or video recording They're in that that top right and it will then process now Just to give you an idea and an hour long interview it took close to two hours So it's the upload process and then it goes through and does the actual Transcription, but what's great about the end result Is that it it identifies all of the separate speakers? And so what you do over in the right panel is you can go in and say well speaker one That's tom and so you replace it in one place and it'll replicate it through the entire transcript Speaker two is christian replicate it through the entire transcript. Then you can search through the transcript Uh and listen to each of the little audio clips to clean up the wording if you if you're using acronyms For example, but you can then add quotes from that transcript over into your word doc or in one button Move the entire transcript over in the word, which is what i'm doing So it is just a huge time saver to To create those transcripts And then you can do things like if you do an interview and want to do a blog post and also add the transcript to that Or just have a better formatted Speakers defined word doc version of your transcript Without having to go through and copy and paste a couple hundred times to pull from stream or youtube So it is just a fantastic little resource that i'm excited to use all the time a couple things on one one If this had come out like two years ago I would have laughed hysterically because i'm sure some of you had the Pleasure of receiving transcribed voicemails from outlook And it was like god, I hope they never fix this because this is just an endless source of entertainment I have I have transcriptions of voicemails saved from like uh You know jeff roski and I for example going back and forth and it just butchered the language so much Like I don't know what we were talking about It's nothing related to what the transcriptions was that are highly entertaining I remember one of the funniest ones was a co-worker had gotten a voicemail from her boss That was when you have a sec. Can you give me a buzz it came out as when you have sex? Can you give me a buzz like? Cheap not the way that was meant Um now context. I don't know you know whatever whatever Um, so it's a thing of Now their ai is so much more powerful That you're actually getting stuff that is pretty much Accurate out of the box, which is great. The other thing that I just mentioned is an observation Is I can see this kind of thing really playing havoc for people who do transcription for a living Because I don't know so what I would say is if you've not played with a dictate Go in and just try that see how accurate it is However, you have to like learning a second language to get to master it with the punctuation True editing. So there's still a lot that needs to be done there. And so you so it's it's not uh, you know, uh You know panacea solution that just solves all those problems But it's fantastic if you're trying just to capture stream of consciousness thought The dictate is great. It's definitely going in the right direction Right tom. You should be able to grab the sharing direction. I can which is really kind of nice. I like that I set that up to work like that. So Yay I see let me Boy my first one I was not queued up to where I should have been so be it Uh Lately in SharePoint online There's been a new web part that came out, which is kind of cool and it's called the save for later web part you know for me I have this really bad habit of collecting Information but not necessarily using it. I got a great bookmark collection Never go back and look at any of them, but I got a great bookmark collection Well, now I can do the same kind of bad things in SharePoint online when I'm looking at documents or pages And to be able to easily put something on a page That enables me to have a quick reference for things that I've said Oh, I really need to get back to that because I can't do it right now So for this save for later bookmark or save for later web part I'm going to be in a page and I'm going to click on the little plus symbol and Call up the save for later web part And when I get that come on There we go when I do that it puts the web part out there And there's a number of things that you can specify To make it more customized for what you might want to have So for instance, you click on the pencil It brings up the editing pane over to the right where you can start to do some of those things the first thing is On the site that you're on and you put this save for later web part You can have it show all the items that you've saved for later or only the items from that particular site So for instance, if you were on an internet site, maybe they wanted to make customized content They could put this out there and say hey We'll show you anything that you've bookmarked or if you're in a team site You only want people to see things that they've marked save for later that actually reside in that site You can make that differentiation, which is great You can also select or differentiate between just showing documents that you have saved for later Or whether that also applies to pages and news posts Again, if you're in a team site, maybe you're just flagging documents that you need to get back to or that you reference on a regular Regular basis But if you're in an internet, perhaps you want to flag that news post to go back because it's got some links that you want to deal with So again, you can make those differentiations in this web part for whatever works for you You can also say how many you want to show at one time eight is the default Which is great that seems to work fine But if you're using this really heavily You may want to show more And you're able to basically hide that web part if nobody or of you have not marked anything to save for later So it can be completely transparent If it's something that if it's a feature that you don't use and you don't mark anything Or it can show up and give you everything that you need to look at And furthermore it also allows you to change the layout of how you see things. So Here I've got it actually in the list So I would see the title the title the title and it would just scroll down the page where before Well, you'll see it here in a second The other layout is grid format where it gives you those nice little cards that show up on the page It's going to take more room But it's a little bit more visually appealing If you don't want to give up the reason or if you don't mind giving up the real estate that's involved So for this example I went out to a page on the site that I was on and I clicked the little save for later bookmark And all's good And then in this save for later page where I added that You'll see that it now shows me the item that I had marked a save for later It's using the grid format. So again It's a little bit more visually appealing May give me a little bit more context here But again, I see this is something that's really good for internet type pages Or for maybe Division or department pages where you want to allow people to interact with the home page not necessarily Have a whole lot of stuff that's just for this group or that group or things like this This gives the page the appearance that it's you know Basically specific to you And if you have a site that you just want to have your own page And you want to have a page that just shows your bookmark So you can go back and see it and you're the only person who really cares about it You know make a page call it the save for later page put that bookmark in there And you got an easy way to get back to all your pages that you've marked to save for later So I think it's a really good thing to have available to you You're definitely not going to use it probably as much as you would christian's transcription thing But it is a nice feature. All right, so I've just launched the poll on this. I'll let you go and vote between the two One thing I'll say that there's a bit of a theme um It's certainly in a lot of uh, microsoft's announcements Around that personalization that personal view into information And so you're going to see that theme today. I think Um, I don't know what else tom's going to show but that's some indication But certainly in a lot of the features Because that's it's so great that microsoft has figured this out and the technology has progressed especially with the cloud to a place where So much of it you can go in there and customize how you want to consume information How you want to You know retrace your steps like i've shared in the past like the the timeline feature in windows and you know and the Using your screen layout and and you know customizing your view of the world Helps a lot with productivity And uh, you know, so it's it's that's it's this is a cool feature So I love this kind of stuff that helps with navigation and personal productivity. You bet All right, so all right, we've had that open. I'm gonna Close the poll if you've uh, not had a chance to go vote on that really quick five four three two one And and that uh, well, thank you. So I I took it 59 percent. That's well deserved. I would have voted for you On round two over to you. Okay This is something that's really cool. I know sandra's online right now She actually pointed this out to me. I'm like, oh my god the windows 10 calculator. It's freaking awesome um If you've been around computers for some time, you know that there's a calculator that's attached to windows and It allows you to do regular stuff and maybe scientific stuff and maybe hexadecimal stuff Yeah, fine. Okay. No big deal well She pointed out to me that the windows 10 calculator is not your father's grandfather or grandfather's calculator anymore It does a lot of cool stuff And including some real-time type calculations that Normally, I'm off trying to find a site to give me those comparisons And I can now do it all within the calculator. So does it have the digital abacus that I use that I'm it's kind of my go-to You might want to submit that to user voice. Um, I'm not I'm not sure it's there yet user voice calculator. Check it out See if it works So if you click the windows icon lower left corner of your screen select the calculator option It will probably come up this way the first time which says standard. You're like, yeah, fine. I've done that been there I would use that on my phone. No big deal But there's the hamburger menu up at the upper left corner For the options click that Because then you get some really cool stuff. You've got scientific and programmer. Yeah, no big deal But then you get into date calculations and converters That's where in my estimation This really shines because you're not out looking for sites to do currency conversions or You know, how many tablespoons equal, you know, blah, blah, blah type thing. So For date calculations, you can pick a date Pick another date and it will tell you how much of a difference there is between those So when I ran this I was it was back on august 6th to may 22nd Which is my wedding date and I had nine months. We jokingly refer to it as we're a baby away from getting married No, we're not having kids But there's also 289 days We have had situations where people are like, well, we need a feature that allows you to count how many days between this date and that day Go ahead and use your calculator. I can't build it to look this nice Currency this one's really cool where you can say, okay, I've got 500 dollars. What's that going to convert into canadian money? And it also uses real-time rates, which is just awesome Are you able to get on point to a calendar date for the rate? I'm not sure you can I think it just takes the normal or takes the current rate But again, I use this when we went on our cruise earlier this year It's like, okay, how many dollars are going to equal how many egyptian pounds or how many jordadian dollars? And stuff like that and again, it's real time.  You're going to get the most current things A number of days to say, okay, we have 500 days. How many minutes years weeks hours seconds milliseconds, I don't know why but you can do it So again, if you're into having to make those kind of comparisons or conversions or anything like that And you're tired of trying to find a currency site or a cooking site or something like that Your windows calculator can do it for you and it's pretty freaking awesome Yeah, I had no idea that all those options were there. That's that's either did I until sandra pointed it out to me I'm like, oh my god. This is kind of be a tip Yeah, it's like sherry says in the comments, you know always searching for websites. Yeah, I've got I Doing the same thing doing especially working across time zones. I'm going out to those kinds of sites But with currency conversion having that stuff right there Oh, yeah, calculator right in my my laptop when I'm traveling like I had no idea So yeah, you're dead. Good stuff All right, so go ahead and take the screen over and run with it all right round two so Uh similar to your previous as the navigation so my next tip is the New adding shortcuts to shared folders in one drive. This is pretty cool, too Yeah, this is so I so I found myself if you're like me I mean one of the things I do is I have my favorites set up in file explorer So I have everything set up as my my go-to locations Um So that I can you know the things that I access like I've got a folder for productivity tips So all the presentations all the images that I add to my slides You know anything all the recordings are all accessible to that folder similarly I do my live stream every Monday the the office hours and we ask Questions from the answer questions to the community and so I want to have all of those assets my tweet jams whatever you know client contracts I've gotten these folders. Well The the problem is I noticed this what I was uh on the road so visiting some family and I logged in just to check Uh email I didn't have my laptop with me And so it's great with the cloud being able to log in with my profile into office and finding getting access to certain resources like email Um through somebody else's machine and of course logging back out of that device But now that you can actually go into the one drive client and do something similar where you can create these quick links to folders within teams to SharePoint to You know cloud and other You know accessible resources if you're trying to access them You know from your local machine and having things that are a blend of local hybrid and cloud-based resources All from one menu and what's happening is one drive is becoming that I mean it is becoming a replacement of the File explorer and it's giving me a much more accessible centralized Way of accessing all of those different assets So it's really simple to go in there and do in this example I just went in over on the left you see uh all of the libraries that are accessible through my office 365 groups They are through teams. I found that Library that I wanted to access and of course you can have you know multiple levels of or Silo's of information across SharePoint and teams and and one drive and create these quick shortcuts by selecting it It was just simple as going up and adding the shortcut to my files And then that my files like in file explorer Where it's the favorites it's creating those lists of favorites and you can actually go and do much more With that you can actually go in and take you know actions and create automations Based on those folders. So you can actually create power automate your activities and You know something that you a state change kick off a workflow and access that that information So just a lot that you can do But this is again one of those things where it's allowing you to go in there and further personalize that One drive experience to make your content more easily Uh, uh, you know to surface your content more easily because that's like the worst thing is when you're going and like I just had this open where was this and having to dig for things or if it's like me i'm i'm Working on over the course of the day 20 different things in 20 different locations And if I go to save a file It it tries to be so helpful and removes me from where I've been working where I opened a file And defaults me to save in some place where I never saved anything And where was that location again? Well, it's really easy for me to go find those frequently accessed areas in that Uh, you know the the my file section and save my content back to that location Yeah, this is This is cool that they've made it to where one drive can become more of a I can live here Because I have links to everything I need to get to that should be the marketing campaign right right there one drive I can live here I guess it's not that bad All right, so the poll is open. Please go in there and vote so tom's calculator tip like I did not know what could do that Versus the new shortcuts creation in one drive Which do you think you'll use more? Do All right Come on. Congrats. You got 81% of that one. Yay All right, um, let's see. Let's jump over to Three tips 30 minutes. Let's do it. Let's do it round three I muted myself there for a second I have that one's good this feature for so long Who has not been waiting for this feature? Like this this is great It's the ability to go in and mute all and make it the default setting to mute people as they come in Now there's what this means and what this doesn't mean But uh, I just like to nip that chatter in the bud So if you have a meeting that you are the admin for the owner of and have more than five people What you can do is through the more options the ellipses there Select the meeting options and you see down at the bottom there on the right allow attendees to unmute Deselect that So that makes it so that when people log into your meeting They're by default muted Yes, they can unmute themselves But most people the problem comes from them not muting themselves in the first place And so if you begin with everybody silent That golden silence Then you can usually you know people are good about okay I need to unmute to come in to say something and then remute myself And of course you can always go in and silence people by going into the show participants button So the little people icon up the top middle right under meeting in general show the participants and then there's a The mute all or there's the you know the uh icon on the next to the each of their names and mute those individuals Of course, if you've you if you have a video Going and you can generally see where People are it highlights people that are making the noise where the background noise is coming in There's a great video that's out there and I thought about if we had only had more time for this A great video about uh, it's a zoom meeting I think the kid was doing it as a joke But it's a classroom with like 50 kids in the class the teacher's talking It's a math class and the kid asks a question and then He doesn't mute himself and he starts screaming at his mother who you hear in the background I'm gonna do my laundry. Yes. I'm gonna do my whites Like give me a break. I'm trying to ask I'm so sorry. It says go back to yeah, you were saying about this and the teacher starts talking again He starts screaming at his mother again I'm pretty sure that he was doing that intentionally to as a joke, but it was just uh, you know fantastic there We've all been there But I'm just saying that to the teams so when you mute the people it does prompt the individual let them know That they are muted But at least it's a uh, you know, they have they can unmute But you have an option To control the sound It's great. Very nice. Tom over to you. Okay. I will mute myself drop the mic mute myself So this one is something that's been out there for a few months now But it's really useful if you spend a lot of time in teams When you're actually in a chat or a channel And you're trying to find a phrase or find a word much like when you're in word And you use control f to get the find thing and you type in your word hit enter and boom it pops up Well, now you can do the same type of contextual search In a teams channel or a conversation So in this particular example that we have here I in a chat with sandra because we talked numerous times a day And I remember that she mentioned something about user voice But I can't find nor do I want to scroll through All the stuff to try to find where that was mentioned So what I do is I hit control f and up in the menu bar here at the top It changes it to slash find Puts her name in there, which means I'm in a chat with her I type in user voice and hit enter And what that does in the left side results pane Is it actually finds all the chats where the word user voice came up And once I have that entry there, I can say I see which one was the one I was related to Oh, I think it's this first one here if I click on that one It then actually goes to the chat And does kind of a yellow highlighting of that particular chat entry Again makes it really fast for you to get to where you need to get to to get the information that you thought you remembered somewhere Without having to spend a lot of time scrolling. This may not be Too bad if you're in a chat But if you're in a channel that's got a ton of activity every day And you remember sometime last week somebody mentioned a phrase or a term That you need to go back and see what they said about it This can save you just a ton of time To get back to where you need to be Save you from having to scroll through everything And potentially miss what you were scrolling through trying to find in the first place So I recommend that if you're a teams user Definitely get used to this, you know control f to do contextual text searching within a chat or a channel Yeah, because the way that it works now I mean you can go up, of course the search bar search on user voice And in the results on the left you can select like, you know So it'll bring back all the results of where that showed up You can click on the people and click on Sandra's profile to find to kind of refine those results But if you I mean, but as you said you're having to dig through kind of all of those different things and it could be You know, this this is just a way that if you know that it was a conversation with somebody And through a chat to go to a specific location It's just a you're you're putting the refiner in place before the search Exactly the way around exactly. All right. Microsoft does that a lot of multiple ways to To to do the same thing, you know, so All right launching the poll So this is putting shortcuts in one drive versus muting people Oh muting people. That's right muting people versus Being able to use contextual search in your chat or channels in teams. Yes Do the music again. It's like we were just here. We went pretty quick on that one All right, so yeah, we'll take another five seconds to to vote. So please go vote there four three two one All right, ending the poll Tom you got that 59 percent. Hey, cool Well, let's see if I can repeat that in round four and then I can relax on round five. All right Okay outlook on the web has type ahead suggestions I'm I'm finding I'm really liking this one of late because I've switched over to using outlook on the web for nearly everything that I do And so this has popped up literally and I find that I'm getting used to Certain phrases that I can just tab over and get an email built without having to type in half the words So if you've used gmail, you're probably used to seeing this where gmail would sit here and try to complete sentences for you Based on what you've done before Now outlook on the web is doing the same kind of things. So in this particular example Again using an email. I'm sending to sandra Um, I started typing and I got to the word tell can you tell? And it figured well based on prior things you've done You probably want to have the word me following this And at that point all I had to do was click the tab key and it went And basically accepted the me in there Had a space after the word and I was ready to type again In this case, I kept typing and I typed in what is go And it figured I really wanted to say what is going on So it completed that phrase and again All I had to do was hit the tab And it would go ahead and accept it and I can keep typing again. This is a really quick tip And some of you maybe you're not used to looking at the screen when you're typing an email or something I generally do and so when I see that pop up Now that I'm used to it and I'm expecting it I'm finding that I get much longer phrases where I will start to type Uh, I can't even think of a good example right now, but maybe it's like Can we meet? And then it may say on thursday for data site blah blah blah blah and it fills in the next words which are Similar to emails. I've set in the past. So again the ai Being able to give you an experience that is much more geared to you and how you use it Um, microsoft is really going there and it's really nice saves a lot of Time and effort even though, you know typing three more letters four more letters a couple more words. Isn't that big of a deal? But once you know that you can just hit a tab key and it takes place automatically All of a sudden you kind of get to where having to type it in as a nuisance now and Be able to tab through these things tom. I don't believe I'm overstating this when I say that you tom are destroying civilization Thank you. Um, we don't remember anyone's phone number No one can remember how to spell and now we're encouraging people to not even finish their sentences I wouldn't Oh, I wouldn't know about that. Sorry christian That's it's the it's this what ai is doing. It's not you tom. It's ai unless tom you are an ai Is this really tom? We don't we don't know that's how automated we have now How long has it been since you've seen me in person? I know I I've not seen you in the same room as the robot. I created the cyborg months ago. So this is true Yeah, that's that's too funny Okay, so you're number four. Let's see what I'm going up against here All right number four. So this is again one of those things which I was very excited to see the announcements around Uh, the recurrent surveys within teams So, of course, we've had the ability to go in to use the microsoft forms There's been a number of announcements around microsoft forms. Oh, you know over the the the past year And so they're adding more and more to that there's still some gaps in between You know forms that are created as part of like email campaigns and and elsewhere But what you're seeing what's common across these is that you can go and create a form a microsoft form Whether it's within the forms dot microsoft.com Whether it's embedded within a power point or a stream video Or now within teams is that you can then go and have these Surveys out in multiple locations and from one centralized location if you're the admin that's creating all of them You can see all the stats Capture all those results from one location, which is really powerful But one thing that we've been lacking and they finally released was this ability to go and create a recurring team Or form within teams. So in this example, you know, like if you want to do Which is a great thing to do within an organization is kind of the health and well-being like how are people doing? And so we want to just kind of on a regular basis do these little pull surveys And so what they've done is they've created these nice little templates So that you can have these things going out on a monthly basis. So to create a recurring survey So you need to have the forms app enabled within your team or within that make it available to users And you can add it if it's not team-wide it can be within a specific chat that you add it to But your admin has to enable that But you add the forms app to the team or chat you name it and down at the bottom there it says create a recurring survey You click next on that and it has these templates So the employee well-being this the student well-being and then the daily health check-in And of course you have the ability with any of this stuff like they're not talking about it now But being able to go in and create your own templates Of course, you can customize these and the questions being asked, but they give you that starter template I'm sure we'll have more templates coming and organizations will be able to go and create something similar But select the template review and edit the questions and you can see it's just that standard microsoft forms Format there set the recurrence level for those And then select how you review the results and click save And that's it And so if you are a manager and you have a team with your five direct reports You can have this in your own You know the the the private channel or the the channel that's set up just for your directs And have this go out on a weekly or monthly basis and do kind of that check health check-in How are people doing working from home? What's what's the activity? What's what's going on? How's house performance and just have another format information that you can capture to They just and without having to go and create these forms One by one or send out that same link and update the information or the questions asked so Just a great resource to have that's it short and squeeze I had not heard of this one This is a brand new one to me. So it is it's it's uh, I think this was a september announcement. I think Anyone that's out there. So I I've gone out and as you can see I grabbed the screenshots and You know, I considered sending one out to my team but seeing how it's me myself Just be I I opted to not send it But you know, I've got that option in the future Yeah, one thing that I find helpful is now that I'm doing the weekly webcasts with The planet technology team talking about the things that are coming up in the roadmap I usually have a clue as to what's coming up that one completely escaped me. Yeah right, uh A couple more seconds for a vote. So get your votes in four three two One we're actually making really good time here by the way. So we have we are We have 14 minutes left with the the last one. So that's great Well end the poll and oh and we've got a tie. So it's well not in the question overall So I won the round 22. Okay There's no ties in baseball You have round five for the tiebreaker for overall. Okay. All right. Let's jump right into The final two tips here A final countdown Tom, please if I could So here is again, so I am a big fanboy for all things tasks microsoft has some very Thank you debbie. She says her ears are once again bleeding Agreed. Okay, that hurts I'm I am a big fanboy for microsoft's uh microsoft 365 task management. There's a lot that's happening It's far from perfect. There are gaps in between them I I field a lot of questions and some of my most popular blog posts are about the gaps that still exist with the project management capabilities between to do tasks planner Project online that kind of stuff, but We're not getting into that depth. Keep it. It's simple here folks. Uh, but the In outlook if you're still working in email a lot, we all live in email still to a large degree But you have the ability now with uh outlook online It has the integration with to do so you have the ability to go in and look at your calendar view And the tasks over on the side And you can literally then just drag and drop tasks that have been assigned to you into your calendar So if you're using planner, there's an integration between to do and planner So you can actually go into the to do app and if you're not using microsoft to do Even if your organization is not using it. It's my list app. I use it for grocery shopping I have a shared list with my wife and my son So anybody wants something the next time somebody goes to the store. It's all on the same list Yes, I'm the only one that accesses that list when I go shopping My wife always forgets that she has access to that list except when she's asking for something It's on the list, but when I'm asking for something She doesn't that's different But that's a different conversation. We'll come back to that another time Um, but this is as you but when you have all of those items in your to do at list You can aggregate So if you're a member of 10 different planner plans and have tasks assigned to you in each one of those There is a my view in to do of all of those tasks Well, you can open up those to do tasks within outlook and then drag and drop time to work on those tasks Over to this. I don't know tom. Yes wonder list was nice, but it didn't have this No, it did not have this So the the next question people Ask is like well, can we do this with outlook for the desktop? No, there's not the to do integration, but there is the outlook tasks integration So you have these are flagged emails or tasks that are created directly in outlook All of those tasks do show up in your to do app on a separate list So there's not a Fed or federated view Well, I guess there is in my tasks You can see everything whether you've created them or they're assigned to you in that one view So you can't create everything I need to do today or a my day view Of all of those things that are coming from outlook desktop Or from to do from planner But to my point here in the desktop application I can go into my calendar with all of my outlook tasks and in a similar fashion Drag and drop those tasks into my calendar so I can set aside time to complete those tasks So that's what this is So we're we're getting closer to having a an aggregated or federated view of all of these things within those those tasks You want to answer one question we have just hit the chat. Yeah, I saw that so There's a view so if you go up into so I'm in the home view of my calendar And so there's actually a you can go in there and change the view if you clicked on view So where you're able to see all of your tasks or flagged emails on the side or you know In this this case on the bottom So there is a a default view that you can set to look at your the tasks as well as the the calendar items Cool. Yeah, I I need to do a better job of My tasks actually moving them into my calendar and blocking out time instead of Having the meetings that I have out there and then hopefully eventually getting time somewhere To actually get those done most people I mean it comes in spurts I mean, I wish I did it every time right in the moment But the reality is that you know Towards the end of the day I'm going back through and I'm kind of sorting through and shuffling moving everything around but You know it Yeah, we're nobody's perfect. Yeah, there's an upcoming thing that was announced at the last ignite That we had virtually that i'm looking forward to and that's that whole the commuter concept To where you have the ability it gives you A way to kind of shut down your day to review what's going on To kind of take a look at what's coming up the next day And physically say okay, I'm making that transition from work to home Even though in today's environment that may be just I got away from my kitchen table and went into the kitchen itself But it's that same kind of thing being able to Coherently look at what I've got coming up and plan for it instead of just reacting to what's showing up I often incoherently look at my tasks that are ahead of me in that day, but oh, I've made a career of that I mean not a problem Okay, so my final tip for round five here This actually came up from a request that we had during a meeting where somebody was saying that the GIF or gif whatever happens to float your boat pronunciation. Okay gif I'll go ahead and go along with you here my friend The gif animations that you can use in microsoft teams They found it really annoying when people would use them And all of a sudden you've got motion on the screen And you have no way to Get beyond that if that's something that bothers you and if people are doing Gifts like left and right person. It's like let me out of this chat So I thought he's basically asked was there a way to shut this off and I'm like, uh, I don't think so but then I went and looked and Hey Edie my co-worker found a way to do exactly that so what you can do So if you're in your teams client go into settings, which is your picture up in the upper right corner And then in general if you scroll all the way down to display They've got to rest You've got turn off animations and it does require restarting teams But what this basically does Is for your gif animations that show up they will display on the screen But you don't get the animation attached to them unless you actually want to see it So basically in this particular example here, it's kind of hard to do the example in real life But we're normally this would have shown up and it would have started Cycling throughout like three or four times the animation associated with it Now it just pops up with there if I wanted to start the animation I could click on the start symbol and I would see it and I would laugh and I would go on to the next one because That's just how I handle these But for people who don't want that distraction and don't want all the movement on their screen if it's not applicable to what they're doing This is a really good way to Start to reduce the distractions that you personally may not like to deal with so Is that something you can set up as an admin when you're deploying a new A new employee system by default to have that turned off, you know, not sure when we were looking for it I didn't see it being anything like a group policy or something But it wouldn't surprise me look to see if that is it I would I would be surprised if it wasn't, you know a group policy, but Yeah, because I could see this being a usability issue, especially if people Accessibility issue for people who may get distracted people who may be somewhere on the, you know autism spectrum Right and not know how to go in and turn this all off the other side I was thinking tom is that there's also an opportunity to like if you use an animated gift that you have to put money in Like the swear jar it could be the animated gift I like it I would be rich at the end of some of my meetings It's just a way for you to course correct those within your organization who who spend a little too much time Selecting animated gifts I'm just saying I I will admit when I was when it was announced in our team channel today that I had on call for the next two weeks I may have responded with three animated gifts that were basically along the same line theme. No, no, no Tom, were you a big myspace user? No, I was not actually But it was funny because somebody came back with one that was I think that meant yes And I came back of course with a that's fake news. I'm like, that's the only time I will use that term that actually applied It's like every website in 1994 pretty much have those things. So that's like about every time I I see the those but Well, the the poll is up and running. So please go there and vote and while that's going I'm going to pull back the sharing And Let me grab that and to round things out here So five more seconds on the poll. So please go vote four three Whenever you do this countdown, I keep thinking it's like my dance class where it's always five six five six seven eight All right, ending the poll yes I lost 67 and three to two for the round. So thank you everybody overall win Tom, I don't think that changes the the total stats. I think it doesn't matter Be I think you're ahead there, but it's the emotional crushing that I just took. Oh, agree Okay, and I'm taking screenshots of who's on this call that works for with me and yeah Watch your support I know well, let me just say it in the waning moments here Be since we we tom and I we have thought long and hard about the schedule for the rest of the year And so we're we're happy to share that the next event is on the calendar November 24th. Yes, it's the week of Thanksgiving. We realize that But I would be very thankful if you voted for my tips that week. Yes But join us for the nexus event and and and we already have I think we have Close to I think we've got about 75 people are already registered for November and then December Happening on the 29th. So at the end of the month. So again, if you're not taking the time off Even if you're on vacation, no one's going anywhere. You're just home watching TV Actually, I can't say that I was going somewhere during the week that we originally scheduled this So we had to redo it. Yeah, but I I feel bad if people had vacation plans are not able to go I'm supposed to be in Hawaii in May and I'm still fingers crossed that I get to go there But uh, you know for but I'll just say there's such a wrap things up, you know Please definitely if you enjoy this format go and subscribe subscribe out on youtube Again, that's under the collab talk Um, I don't spam people with a bunch of stuff that's out that there's interviews and there's this The productivity tips and some other useful videos that I think you'll you'll like And then of course our two blog posts where we'll uh, we largely blog about most of these tips Tom and I are both very productivity focused so It's a lot of great content in both locations, but definitely Tom is only he's dedicated to the productivity stuff. So make sure that you're following his blog there I found my niche. I found my voice I found my niche I don't know. Yeah. Yeah, now you can sing you can break their ears and it won't cost you anything It did when I did it. It's not 80s hair metal though, so yeah Thanks everybody and tom. Thank you as always And do it again next month. Sounds good. Bye everyone. Bye


Hello everyone, thanks for joining the session of the Open Source Summit Latin America conference. So today I'm going to talk about some tools and techniques to debug an embedded Linux system. The idea here is really to show different ways and different techniques that we can apply when trying to identify and solve bugs in software. With that kind of focus on embedded Linux, but most of the concepts here can also be applied on, let's say, a desktop system. So, yeah, a little bit about myself. My name is Sergio Prado. I'm living in Sao Paulo, Brazil. I've been working with embedded systems for 25 plus years. For the last 12, actually, years I've been working with my company, Bad Lab Works, where I provide consulting and training services. I'm also an open source contributor, so I contribute to a few open source projects and blogger on free time. So this is our agenda. I'm going to quickly introduce some important concepts related to the buggy. And then we're going to jump to real situations where we need to analyze bugs on an embedded Linux system. So I created here different kind of situations, and I'm going to show lots of comments here and explain how they work and what kind of techniques we can apply to try to find out the root of cause, right, when we are debugging problems on an embedded Linux. And I hope you enjoy. So I'm going to start with a little bit of introduction on the bugging. This is a kind of a joke, right? But I really like cause usually when we write software, we think that our software doesn't have any bugs, but that's really not true, right? All software I mean have, I guess probably the only software that doesn't have bugs that the software doesn't have online, I don't know. So software will always have bugs. It's a matter of finding those bugs. So usually, I mean, this is again a joke, and that's kind of representing the six stages of the bugging. It starts from denial. You just said, there is no bug there. I'm pretty sure I tested. And then you start realizing that might be an issue. And then you just say like, doesn't happen on my machine, right? And until you ask yourself how did that ever work, right? The bugging is kind of the process to removing bugs, right? And bug is that word that we have been using since the earlier times. And by this term, we mean problems, right? A bug is a problem in a software that unexpected issue. And another phrase that I like a lot in the software development process, we spend 50 times percent the bug in the software and the other 50 bugging. If we think about kind of what would be the process to the bug in the software, we can kind of come up with five steps, right? At least I come up with five steps. And that would start with understanding the problem that I guess it's one of the most important steps, right? Because if you don't understand the problem, how can you debug it, right? The second step would be try to reproduce the problem. And that's also very important because if you cannot reproduce it or if you cannot reliably reproduce the problem, how can you be sure that you fix the problem when you apply some kind of fix, right? So the problem should be reproducible so you can make sure that in the end you have fixed the problem. Third step would be identify the root cause. That's what usually takes some time depending on the issue. But if you know the tools, if you know the techniques and apply the right techniques, depending on the type of problem, you can be more assertive here and find the issues faster. The fourth step would be fixing the problem. And that's kind of easy, I would say, because as soon as you identify the root cause, fixing would mean changing the code, compiling the code, deploying and testing. Kind of easy, right? Comparing to the other steps.  If not, you get back to step one to see what is happening, what went wrong. Thinking about the problems that we can have in software, I come up with five kind of categories. So just think about a problem. I could kind of divide this problem in five different categories. There is those kinds of crash issues, right? The software just crash for some reason. Like you can have in the kernel, oops, in user space, you can have segmentation falls. So you have crash messages that you could investigate. That is those kind of lookup issues where the software just hangs, right? And yeah, usually I don't know some kind of error in the implementation. I don't know some kind of issue in the synchronization of, I don't know, an application that is based on multiple threads. The third kind of problem, I'm calling here logic or implementation problem. So the software just works, but it doesn't do what you do. So we have an input to have some kind of processing and an output, and the output is not expected. It's a logic problem. Fourth type of problem, research leakage, that's when you allocate research, but after using this research, you don't deallocate the research. So the research just leaks. And the last one, lack of performance. Everything works, but the performance is bad. Usually an issue that is caused by a lack of performance, the user has some kind of perception of bad quality, right? The usability is not good when you have this kind of performance issues. And for some reason I could also come up with five different tools and techniques to debug those kinds of problems. I would say the first one, it's our brain, because it's probably the most important tool that we have, right? Our brain, we need to think about sometimes, think a lot about a problem, think about different ways that the problem could happen. And of course, the technical knowledge is also important, right? To understand, for example, what is a segmentation for? We need to understand why a segmentation happens because of the isolation of memory provided by the MMU and etc. Second class of tools and techniques, I'm calling post-mortem analysis, that's where you just take some information and analyze that information, right? You don't do the debugging at runtime, you do it later. So collecting logs, analyzing the logs, collecting dump, memory dumps, like a card dump, analyzing those. It's what I'm calling post-mortem analysis. Tracing that could relate to profiling. This is a technique where you trace the code at runtime. That's kind of one of the most used techniques, I would say, because everyone knows how to debug an application by putting prints in the code, right? So when you add prints to the code, you are tracing the application. But it's important to know here that sometimes you don't need to put prints in the code. Sometimes there are complete kind of infrastructure to trace the application. For example, the kernel has ftrace, complete infrastructure to trace kernel function calls and profile functions. I mean, you can do lots of different things with ftrace. In user space, you also have a few nice tools like strace, ltrace, perf that you can use to trace user space applications. Another technique to debug applications is interactive debugging, GDB. So you can just run your application step-by-step, interact with application, inspect the memory, right? That's another way to debug an application. Last one, I would call, I'm calling here debugging frameworks. That's where you use some kind of tools that were made to debug on a specific kind of problem. The kernel has a few debugging frameworks. I'm going to mention it here later. And a very known debugging framework is called Valgrind. It's kind of framework to develop memory-related tools. So Valgrind, for example, is a tool used to try to find memory leaks and other kind of memory-related problems in applications. So far, we talked a little bit about different kind of problems that we can have and different kind of tools that can help us to debug those problems. Now we're going to go over each one of these main types of problems, see some real cases on an embedded Linux device, and talk about how can we debug those kind of issues. So let's start with post-mortem analysis. Post-mortem analysis, as I mentioned, is a kind of technique where you extract information from a system, in our case an embedded Linux device, and then you analyze that information. It could be logs from the device, it could be some kind of memory dump, like an application cordon, and then you take this to your device and analyze it. Let's see a little bit of how that is done. So here I have a kernel ops message. Kernel shows this message when something very bad happened at Kernel's base. And it's kind of scary for those who don't know what is happening, but there are a lot of useful information here, right? So for example, the first nine-week can see the reason why the kernel crashed, and no point or the reference inside the kernel. We have information about where was the program counter at the moment the issue happened. With this information, we can find out the line of code in the Linux kernel that causes this crash. And in the end, we have a backtrace of the problem. A backtrace is a kind of stack of functions that were called until the problem happened. Here, because of the size of the slide, I cannot put the complete backtrace, right? But here we have all of the functions that were called until the next one. It's a backtrace. So from the last one to the first one, this is the last one, the function that crashes. And that function was called by this one and so on. How can we analyze this kind of message, right? We can use several tools here. For example, ADDR to line or even GDB. What do we need to debug this kind of problems? We need the kernel source code, because the idea here is to take that address and resolve to a symbol, right? We have an address here. We can take this address or we can take this function plus index of the function that causes the problem. That's basically the same thing. Storage probe plus 60 and this address. That's basically the same thing. We can take this and try to convert a line of code. For that, we need the kernel source code. We need the Linux image in the ELF format. That's the VM Linux. When you build Linux, you have this file, the VM Linux file. You need this one with the bugging symbols. That's important. We can see here that this ELF file has the bug info. So you have to compile the Linux kernel with the bugging. There is an option there in the kernel hacking menu. So you just recompile the kernel with the bugging symbols. You're going to have this VM Linux file with the bugging symbols and the kernel source code with that. You can run, for example, ADDR2 line from your tool chain. In my case here, I'm running the kernel on an ARM device. I'm using my cross compiler tool chain. Then with ADDR2 line, I can just take that address, the program counter address, give that to the ELF file with the bugging symbols, and it will show me the function, the source code and the line that causes that crash. I can also do the same with GDB from my cross compiler tool chain. I just have to pass the VM Linux file, the kernel image in the ELF format with the bugging symbols, and then I can just run this common list asking the kernel to convert this to the address. And then I can have here the address, the source code, the line, that's the same result, right? And I can see that in this case, this was the offending line, the line that causes the crash. That doesn't mean that we should remove this line to solve the bug, right? But that does mean that we should analyze. We know now where to start. We know now that if we look at this code, you can see that we are referencing a pointer here. So this one, no. And we need to find out why this pointer is no. What about the crash in user space? Let's say we were on a program and it's like false. When that happens, it means the application tries to access a memory address that is not allowed. To do this kind of post-mortem analysis in user space, we need to generate a cardam file. By default, the kernel doesn't generate cardam files for user space applications. We have to enable it. And there is this multi-view limit that you can use for that. This tool is able to configure process limits. One of the limits is the size of the core file. So with this command here, we can set an unlimited size for the core file. And then after running this command and running the program again, the core will be dumped. And then in my specific case here, where I don't have anything special configured, the core file is generated in the same directory that I run the application. This is a kind of a snapshot of the memory. So I can take this snapshot and open in GDB to analyze the problem. So I can see here the file. What do I need to analyze the cardam? I need the search code of the application and I need the application with the bug in SQL. That's also important. So having those, I can take this core file to my machine and then open it with GDB. So here I'm using GDB with the application, the binary with the bug in symbols and the core file. And as soon as I open this application, the kernel will just... Sorry, not the kernel, the tool GDB. So as soon as I open the cardam with GDB, GDB will say that the application crashes with a segmentation file and it will also tell me the line of code that calls the crash. I can see here the line of code. And what is nice is that it's kind of, again, a snapshot of the memory. So I can inspect the memory. I can even, like, go up and down in this stack if I want. So here I'm listing the search code and I can see the line that calls the crash. And I can just ask you what happened here? Why this crash? It could be the options pointer. It could be the RQV pointer. And then I can just inspect memory. I can print options. I can see that options is... It seems like to be a pointer, but when I try to print the RQV pointer, I can see that it's no. And then I can, like, see that that's why it's crashed, the RQV pointer is no. And then, I mean, I can't keep the investigation inside GDB. I can go up in this stack to try to identify why RQV is no and so on. So that is very useful, right? Especially when you don't have a fixed physical access to the device. Because if you have physical access, maybe doing an interactivity bug is better, because then you can run the code step-by-step to try to identify the issue. But if you don't have physical access, you can just tell someone, please send me the core file and then I can analyze you or something, I suppose. Another technique to the bug is tracing. As I mentioned, tracing is very popular, right? You add prints in the code, you are tracing the application. When you add prints in the code, you are basically adding tracing points to the application that we usually call static tracing points. Because you are adding the trace points at build time. There are also tools and frameworks that are able to add the trace points at run time, and that's very nice also. There are tracing tools that you can use in carry space and also in user space. And tracing is very useful to identify specific kind of issues. For example, to measure time, tracing is very useful to do measurements and find out performance issues, why that functions take a lot of time, things like this. Sometimes tracing is very useful to find out lockup issues when the application is just locked up. You can trace and try to identify where it is stopping the execution. Here I have a few use cases. First, a lockup issue in carry space. Here I kind of added a bug in the carry node where when you run... Actually, this is not a lockup. It's a kind of an issue where it takes a lot of time to run. I put a bug, I added a bug in the carry node to when you do something very simple like this, setting the brightness of a LED, turning on an LED, it takes four seconds. Tracing could be a good option here to debug this problem. For that, trace the carry node, the best option that we have is ftrace. It's a very nice framework to trace the Linux kernel. If you go to the kernel menu configuration, you're going to see there the kernel hack menu inside the kernel hack menu, you're going to see ftrace or kernel tracing. I don't remember exactly. And then there are a lot of options there that you can enable. And that's basically what you need. Then when you enable ftrace, you're going to have trace file system, trace FS. If you mount, you can mount anywhere, but usually we mount on CIS kernel tracing. You're going to have several files there to configure the tracing. You can do that by hand, I mean write on those files to do the tracing. But that is a nice tool called trace CMD. There is a kind of front-end for ftrace and the trace file system. And here I'm using these two. So trace CMD, I want to record and do a function graph tracing of this command. So these two will configure ftrace. So trace the functions executed in kernel space for this specific application. And then it will save this in a trace.dat file that I can open with trace CMD report to see. And that's what I'm doing here. And then we can see all of the kernel functions that were called during the execution of that application. And then looking at the functions, I can see why that take, I can see this msleep function that took 44 seconds to run. That is another nice tool called kernel shark. That is basically a tool to parse, it's a graphical tool to parse that file and show you what happened during that trace. And it's graphical, you can have better visualization here and you can see also the issue looking here, the msleep function that caused the delay in the execution of that process. Another, now in user space another nice tool to trace a Linux system is strace. So let's say you run a command and it just fails and you don't know why. Just run strace, just run that command with strace. strace is a tool to trace system calls so it will show you all of the system calls executed by the application and sometimes that's very useful. So for example here, I'm running these two NETSCAT and it's failing with this error, could not set up a listening socket. If I run the same command with strace I can see all of the system calls and I can say why it's failing. This is the failure, this is the write, the message, the failure message and two system calls above we have the error, the bind call. It passes here a new argument and should not be know it failed and then it have this message. So just running strace you don't need anything there just strace and you just run applications with strace you can't expect what's happening and try to and try what's going on. Very useful. Let's say you want to strace is a kind of limited in terms of only trace system calls. There is another nice tool that is called an Ltrace that also traces library calls and could also trace system calls. But let's say you want to trace your own application you want to trace the functions of your application. So for that that is framework in the kernel call it Uprobe that you could use. It's kind of hard to use the Uprobe framework by hand but you could use Perf for that. So here I have another problem. I run ETH2 and it just freezes, hangs and I have Uprobe enabled in the kernel and I have Perf installed in the system. So what I need to do is tracing. I need the application with the plug-in symbols because Perf will collect the symbols from the application and add dynamic trace points to those symbols. I can do that with this command here. So here I'm running Uprobe in this binary. So it will collect all of the symbols find out the addresses of those symbols and add dynamic trace points to those symbols using the Uprobe framework from the kernel. I can list, after running this command I can list all of the probes that Perf added and then I can just run the application and record the result. It will generate a Perf.data file that I could open with Perf script and I can see all of the functions called in the application until the one that freezes it. Then I can open the search code and try to find out why this application is freezing. You could see here that I didn't like open the search code and add a list to it because there are tools that do that for me so I don't need that. Another technique to debug a Linux system is interactive debugging. It's a kind of very useful technique when you want to understand what any kind of piece of software is doing. You connect to the software you run the software step by step you inspect variables and you can do everything with the solder at execution time. The main tool for that is GDB and you can really do interactive debugging in both kernel space, user space very effectively on a Linux device. The only issue here is that it's a remote debugging architecture because you have the binary that you want to debug and you have the search code and the tools on the host device. So the host has all of the search code and the tools and the target has the binary that you want to debug and then you need some kind of connection between those could be a serial port usually is an internet port and then you can start a remote debugging session and that is a protocol that is generated by the GDB community so that is a GDB server, a GDB client and then you can start the server on the target device and run a client on the host machine that will connect the server and send commands that will be executed by the server. That's kind of the main idea and the architecture on doing this kind of remote debugging. So and you can do this with user space or kernel space. Here I'm doing a kernel space debugging remote debugging session so I run these commands and it is not working. I just want to understand why when I set a heartbeat of the LED it doesn't work. What I need to do this kind of interactive debugging the Linux kernel I need KGDB enabled KGDB it's kernel GDB basically a GDB server implementation in the Linux kernel it's the GDB protocol implemented in the Linux kernel so I need to enable it and also the serial driver so currently the kernel only supports a serial connection and then I will need a serial connection with the kernel to do this kind of remote debugging and then after that I have to put the kernel in debug mode. That can be done at boot time if I pass a specific argument to the Linux kernel or that can be done at runtime. Here I'm doing at runtime so I'm configuring what is the serial part that I will use for remote debugging and after that I am starting and change moving the kernel to debug mode when I write G to the sysrq trigger and putting the kernel in the debug mode and then the kernel will just freeze with the nothing stop waiting for a connection to start debugging. Then I go to the host to add to the debugging in the host what I need of course the kernel serves code I need a kernel image with the debugging symbols the VM Linux file with the debugging symbols and of course GDB from my toolchain so I will open the kernel image with the debugging symbols in the L file with GDB after that I'm going to connect to the target device and then I'm done after that I'm connected to the kernel and I can just debug the kernel I can run continuity and then the kernel will run I can put breakpoints I can run step by step the code and here I'm doing as I'm putting a breakpoint in a function call it legacy to write after that I can continue the execution and then the kernel will stop the execution on that function and then I can go run the code step by step line by line to see what's happening with that specific function in the last framework in user space it's simpler to do it you just need on the device GDB server so let's say you run an application and it hangs that's the case here I'm running this application and it is hanging so what I have to do is run this application with GDB server and here I'm using a network connection so it will open a local part one two three four to wait for a connection to run this to debug this application in the host what I need to debug the search code of the application the application with the buggy symbols and GDB then I run the application with GDB actually I run GDB passing the application and I like to start GDB in tweet mode then I connect to the device again here I'm using a network connection so the IP of the device and the port that I started listening in the target and then after that it will be connected then I can just continue the execution because it is kind of hanged or freezed if I run the application then I stop it with control C I can basically see where it is freezed because if it is freezed in a specific line of code I can see that just like here that are also several of the debugging frameworks that can help debugging in kernel space or in user space by debugging frameworks I mean there are tools that were built to solve specific debugging issues for example you want to identify locks in kernel space locks locking problems in kernel space that is a debugging framework for that you want to identify memory leaks in kernel space that is a debugging framework for that usually the debugging frameworks they add some overhead in the system so you should not enable by default only when you want to debug the application a very classic example of the debugging framework is Valgrind is a kind of framework created to debug memory issues very popular for example to debug memory leaks in applications again I have here a few use cases using kind of debugging framework tools first a problem in kernel space I try to I'm trying here to see prog slash uptime and it just hangs then I go to the kernel I enable the lookup detectors from the kernel it's a kind of debugging framework from the kernel to identify lookups in kernel space when an application just locks hangs in kernel space then I run the application and wait until I get a kernel works then the kernel will say like that CPU got stuck for x seconds I can see where it got stuck so the function the index the address also and I have a back trace here I can do the same kind of post-mortem analysis right I can take this information for example the program counter and then use ADDR2 line or GDB to find out the line of code that is causing this lookup for that I need the kernel search code I need the kernel with the symbols and I can use again ADDR2 line even the address and I can get the search code that is hanging in the kernel with GDB it's easier because it shows me the search code so I can just run the list command and it will say like it's line 37 this one that is hanging very nice another situation a memory leak in user space so I'm running this CPU load tool and memory leaks when I run this tool how can I identify where the memory is leaking in the search code I can use Valgrind for that so I need Valgrind installed I need also if I want to show symbols when I need it I want Valgrind to tell me where in the search code of that application memory is leaking for that I need to install the application with the bugging symbols in the device then I just run Valgrind for Valgrind I want a complete check of memory leaks and this is the application and then Valgrind will run emulator because it will run the application in a kind of a virtual CPU or so it will run so the application will run very slowly and the timings of the application will be impacted that's important to know and that's how it is done that's how it is able to monitor the memory see what's going on but it works very well and you have to let the application run and then stop it at some time and then as soon as we stop the application it will show a report of what's happening and then you can see like total heap usage write the amount of allocations and the allocations and the memory and this field is very important definitely lost that this field means em lots of memory will leak it during execution and and here we have a kind of back trace of the leaks here we can see that something probably not probably some symbol in the libc call it this function that call it this one that call it this one so this malloc leak it that was called by this function printcpulode that is in cpulode.c line 79 so with this information we know we can open the search code to try to find out why this malloc call it inside this function in this line is leaking memory why is not freeing that memory so very easily we could find out the malloc call that was causing the leak just using just running the application with our brand so my point here is that usually we do a lot of debugging adding prints to the code right and sometimes that's useful but I would say that most of the times there are better tools and techniques for debugging so adding prints in the code might help in a specific situation but most of the time you might want to apply other techniques for debugging and what we have seen here several different techniques to the bug right post-mortem tracing the debugging using the debugging frameworks and those kind of different techniques can be applied to different problems for example you will not want to use gdb to do performance analysis because it will impact the performance of this it's better not using gdb for that gdb is a kind of for example a perfect tool for a logic problem right the application not doing what's supposed to do you run it with gdb step by step to try to identify what is doing wrong but not for performance analysis now for example tracing is a very nice tool for performance analysis because you can trace the code you can find out timings measure things so it might be very useful for performance analysis and that's on my point here I added kind of a green yellow and red faces here to and I mean my opinion you could have other opinions on what kind of tools would be better for work kind of problems but in the end the point here is that we should know all of these tools we should know all of these techniques to be more productive on trying to debug and embed the Linux system and sometimes we have to get out of our inertia right because we think that it's going to take a lot of time to understand and learn gdb so I'm going to add print to the code right now we should try to get out of this kind of state of mind and really think about learning new stuff so learning ftrace learning per learn gdb learn all of those tools because one day you're going to need it and you're going to be very productive much more productive using those tools to debug problems in the Linux system so I hope you enjoyed this talk those are my contacts feel free to reach me you can send me an email you can reach me on LinkedIn or Twitter I hope again you enjoyed this talk and yeah until next time bye-bye


In this brief video, it talks about problems with sample selection. In a prior video, you saw six different methodologies for polling samples. Within any of those, more in some than others, there are possible problems with actually conducting the survey based off the sample. Here they are. Bias, under coverage, non-response, response errors, poorly worded questions. In fact, the four errors starting with under coverage all create bias. And remember, bias is systematically favoring a certain outcome, for example, tending only to get views of a certain segment of the population, tending only to get views of those with strong opinions, tending only to get old, only to get young, only to get men, for example, those all create bias. And what we're trying to do in a good random sampling methodology is avoid that. Even if we attempt to draw a good random sample, there can be problems that create bias. Let's talk about those. Under coverage. Under coverage means we've defined a population that we'd like to get to and get opinions from, but for whatever reason we can't reach them. So I'm doing a phone survey, but a certain element of the population doesn't have phones. Or my methodology only includes landlines, and I miss people who have cell phones. I'd like to do a survey by a computer with pop-ups, but not everybody has a computer at home. I'd like to do a survey that really hits the population in a city, but a certain element to that population for whatever reason might be difficult to get to. So under coverage means for whatever reason we're missing a part of the population that we'd intended to get to. I don't know if you recognize this guy or not. This is Jesse Ventura in this state probably elected him governor not so long ago, over 10 years ago. I actually remember coming home from a trip and getting into my car the night of the election and turning the radio on and hearing that he'd been elected and just being blown away just shocked that he'd actually been elected governor. The polling leading up to the election had him third in nearly every poll. Now it was close and there were three people running, but he was third in nearly every poll. And the pundits who sort of looked at this after the fact concluded, not 100% sure they're right, but concluded that one of the reasons he was third and ended up getting elected is that a large portion of the young population, new voters, late teens, early 20s, loved the idea of a non-traditional governor and voted for him. But in the polling that led up to the election, they were missed. They were difficult to get to, often because they were living at home. And so parents answered calls instead of the 18 to 27-year-olds. And so they were under-covered in the survey leading up to that and that's why the polls missed the idea that he would end up being a governor. Non-response simply means what it says. The phone rings, excuse me, may I have a moment of your time and you hang up. The pop-up comes up on the computer and you click through it. The guy at the mall asks you if you can ask a few questions and you speed up and walk by. In doing that, you've eliminated yourself from the survey and if that happens with a pattern, busy people hang up, old people stay on to have a conversation and then you're creating bias. You're missing busy people and getting responses that tend to favor old people. I'm taking a survey, so tell me, son, have you used drugs or alcohol in the last three months? Well, geez, no, I'm going to say no to that. Well you can see what might happen here depending on how a survey is conducted. Folks might be wary about giving an honest answer to a question. You get a phone survey on a controversial topic or you get a survey at home perhaps about taxes. Excuse me, Sir Madam, I'd like to ask you a few questions about your approach to taxes.  Well, if you answer it all, you're nervous and perhaps careful in what you say. So response errors can come from lying, but that would be oversimplifying. It could also come from misinterpretation of the question, where you don't really understand the question that was asked. And so you give a response that doesn't get to the point of the question. A warning of questions is interesting. Read these two. Which is the better question? Well, if you found a wallet with $100 in it, would you turn it in? If you found a wallet with $100, what would you do? Well, I think the second question is a little better because it's open-ended. The first we call a leading question. It suggests what the right thing to do is and probably buys the answers in favor of turn it in. Here's another. Read these. Which is the better question? Well, again, I think the first one is a bit leading. It tells you what proper is and wouldn't we all like to be proper. So I'm going to pick the proper thing, as opposed to the second question, which leads it a little more open-ended and allows somebody to form their own opinion. So again, how you ask a question could lead to a certain answer. These two questions were asked in the same survey really to get at this point to see if people's answers would change based on the way the question was asked. So these questions were randomly mixed up in a real survey. They basically asked the same thing, but they got two different responses. Pause me and read these briefly. So a government had some extra money. And the question was, should the money be used for a tax cut or should it be used to fund government programs? Second question says, should the money be used for a tax cut or should it be spent on programs for education, the environment, health care, crime fighting, and military defense? Which question is the Republican question? Which question is the Democratic question? And it's a little bit of an oversimplification, obviously. But the first question sounds like a Republican question because it's a simple choice, tax cut or bigger government. The second is a little bit more Democratic in that it's tax cut versus programs that might be favorable to the population at all. Well, interestingly enough, that same question, 60% were for the tax cut in the first. But once options were introduced, only 22% were for the tax cut in the second. Same survey, same population, same folks answering questions. You get two wildly different responses based on how the question's asked. So those are problems you should know and be able to identify. Bias is introduced by the four problems listed below. Under coverage, I miss a certain element of the population. A non-response, I might only get responses from those who have strong opinions. Response errors, I might not get what I'm looking for. Poorly worded questions would tend to lead people towards a certain answer that doesn't really reflect what they might think if allowed to think on their own.


The man's instinct to honor the living and the dead reaches back to the very dawn of time. It is an instinct that has embraced all nations and all peoples, and one of its noblest and proudest expressions is found today in the modern Military Honor Guard ceremony. And every part of the Honor Guard ceremony that soldiers know so well, the Honor Guard, the colors, the music, the salute of the firing battery, and its origin in the splendid, often heroic tradition of the past. The word guard, as we know it today, comes from the word bodyguard, and as such, represents the inner ring, the personal defenders of a king. Bodyguards made up an elite corps, the strongest, the bravest, the men who took their places in battle around their king. The tradition of the salute as a sign of recognition goes back to medieval days when a knight wore steel armor covering his body and face, and it was necessary for him to raise his bizer to expose his face. This was always done with the right hand. The left hand was used to hold the reins. It was considered a gesture of friendship because it exposed the face and also showed that the right hand contained no sword. The use of colors dates back to Nubian mercenaries in ancient Egypt. Colors are mentioned in the Old Testament. Every man of the children of Israel shall pitch by his own standard with the ensign of their father's house. There were two specific purposes served by the use of colors. They were the distinguishing marks of persons of superior social status, and they acted as rallying points on the battlefield. Throughout the centuries, when not all soldiers wore uniforms, colors were needed simply to distinguish friend from foe. To lose the standard meant to lose one's leader. The importance of keeping the flag flying stands from this. Sometimes in the confusion of battle, trumpets, bugles, drums, and later bands were stationed near the colors to tell soldiers where they were and reassure them the colors were still flying. In the American Revolution, the fife and the drum accompanied the colors into battle, and as long as they could be heard, the revolutionary soldiers took heart. From this long and heroic tradition of the colors, the bodyguard, and the battle music sounded above the firing has come the modern Honor Guard. Today, the Honor Guard is used to present to persons of high military or civilian rank the honors to which they are entitled upon arriving or departing from a military installation. To serve in an Honor Guard is a mark of recognition of which any soldier may well be proud. Preparations for an Honor Guard ceremony usually follow a standard routine. Before the actual visit, the commanding officer is notified that a distinguished visitor is expected. He then selects one of his very best company grade officers as the Honor Guard commander. The Honor Guard commander, in turn, selects a guard of which both the United States Army and the honoree can be justifiably proud. For this duty, he chooses only the best soldiers in his command. Honor Guard, but is good! The Honor Guard rehearsal usually takes place with the color guard and when possible the band and the saluting battery, which will be present on the day of the actual ceremony. The color guard consists of a sergeant and four specialists or privates selected by the commander. A position on the color guard is one of honor. The sergeant carries the national color and commands the color guard. The army and the unit colors are always placed to the left of the national color. During a rehearsal, only the bare staffs are carried. When the colors are posted, the color guard, guided by the senior sergeant, approaches to a position in front of the Honor Guard commander and halts. The Honor Guard commander faces the colors and salutes. The color guard is marched by the senior sergeant directly to its post. The platoons dress to the center on the colors. An Honor Guard is normally made up of two units of equal size. They may be squads, platoons, or companies. White gloves may be worn with a service uniform on occasions of ceremony. However, non-regulation embellishments, ornaments, or frills are not authorized. On the day of the ceremony, there is an inspection in ranks in the company area. The rehearsal and the attention to detail given to the inspection are what make the difference between an Honor Guard and an ordinary formation of troops. A firing battery is often employed to honor the arrival of visitors. The number of rounds fired will depend on the rank of the honoree. The higher the rank, the greater the number of rounds. Upon the arrival of the honoree, the commander brings the Honor Guard to attention. The host, usually the post commander, escorts the honoree directly to a position ten steps in front of the Honor Guard commander. The host stands to the left of the honoree. The honors, rendered by the band and by the firing battery, are coordinated with a hand salute of the Honor Guard commander. Upon completion of the honors, the Honor Guard is brought to the order. At this time, it is customary for the honoree to inspect the guard. The guard commander takes the position to the right of the honoree and guides him through the inspection. The band plays appropriate music until the inspection is completed. Trooping the line begins at the right front of the band. The inspecting party passes along the front rank of the troops. Ranks are not opened, nor do the individual members of the Honor Guard come to inspection arms or execute eyes right. The members of the inspecting party salute when they pass in front of the colors. When the inspecting party reaches the left front of the Honor Guard, it passes around the rear of the formation. When the inspecting party reaches the right front of the band, the Honor Guard commander halts, exchanges salutes with the honoree, and then returns to his post. The host escorts the honoree back to his original position in front of the Honor Guard. The commander then brings the Honor Guard to present arms. With a hand salute of the Honor Guard commander, the band plays the national anthem. Honor Guard commander reports. The honoree returns the salute. The ceremony is terminated. An Honor Guard ceremony is conducted in the same manner when the honoree departs from the post, except that trooping the line is usually omitted at that time. The Honor Guard remains at attention as the honoree departs. And the Honor Guard commander gives the final salute. Just as being selected for an Honor Guard is a mark of recognition. To be chosen to be a member of a funeral escort is equally a tribute to the soldier selected. For as men honor the living, so they also honor the dead. From the earliest of times, men have buried their dead with ceremony in some well-defined, traditional manner. The military funeral has been developed to express the nation's recognition of the death it owes to the services and sacrifices of its soldiers. Before the funeral, the officer in charge will conduct a reconnaissance of the gravesite. During the reconnaissance, he will designate the positions of the various elements. The funeral escort should be in full view of the next of kin. The firing party should be within 40 meters of the grave and positioned so they will not fire over the mourners. A route is selected for the movement of the casket from the hearse to the grave. A position for the colors is selected near the head of the grave. A full military funeral has three parts, chapel service, march to the grave, and gravesite service. The funeral escort plays a part in each. Escort! Before the beginning of the chapel service, the escort is formed in line facing the chapel. Order! The size of a funeral escort may range from a squad to a battalion depending upon the rank of the deceased. Hurry! When all is in readiness, the officer in charge signals the escort commander and the escort to attention. Escort! He then signals the hearse driver to move to the chapel entrance. The officer in charge, the escort commander, and the band director salute as the hearse approaches. They are paying honor to the American flag which is draped over the casket. Members of the immediate family, relatives, and friends are requested to enter the chapel before the casket is taken in. The color guard is placed at the side of the chapel entrance. In the case of a general officer, his personal color is also present. The driver opens the hearse door, removes the locking device, and prepares the casket for removal. The officer in charge checks the casket, and then signals the six active pallbearers to move into position. The active pallbearers are a separate element of the funeral escort and are stationed at the side of the chapel. The officer in charge signals the escort commander to bring the escort to present arms. On the hand salute of the escort commander, the band plays ruffles and flourishes, if appropriate, followed by a hymn. On the first note of the hymn, the last pallbearer on the left moves to withdraw the casket from the hearse. The pallbearers take five side steps to clear the hearse door. Casket is always carried feet first. There is another type of pallbearer normally present at a military funeral. These are honorary pallbearers selected by the family of the deceased from close personal friends. As soon as the casket enters the chapel, the band stops playing and the escort is brought to the order. When the chapel doors are closed, the escort is given parade rest. At the conclusion of the chapel service, the honorary pallbearers are the first to exit. They assume their original positions forming a cordon. When the casket appears again in the entrance to the chapel, the escort is brought to attention and then to present arms. Escort! Attach! The band again plays a suitable hymn. Active pallbearers preceded by the chaplain carry the casket between the two ranks of honorary pallbearers. Then when the casket has been secured in the hearse, the band ceases playing and the escort is brought to the order. The next of Kim are escorted to their sedan by the non-commissioned officer in charge. He then directs the other mourners to their automobiles. With the band as the leading element and the escort following, the procession begins to form for the march to the grave. The band and the escort are put in march by the escort commander. In slow cadence! Forward! Hard! The officer and the non-commissioned officer in charge of the funeral move by sedan ahead of the escort to the gravesite. The funeral procession marches slowly to solemn music. The chaplain takes his place in the procession behind the color team. The pallbearers march beside the hearse. The active pallbearers behind it. When there is a considerable distance from the chapel to the grave, the escort changes the cadence to quick time. As the funeral procession approaches the gravesite, slow cadence is resumed. The military escort and the band depart from the roadway to their predetermined position where they will form an align facing the grave. Followed by the remainder of the funeral procession continues to march to a point designated by the officer in charge. When possible, the honorary pallbearers are placed off the street to form an honor cordon. When it is only a short distance to the gravesite, the officer in charge positions the pallbearers at the head of the grave before the removal of the casket. The non-commissioned officer in charge is the next of kin. When all is in readiness to remove the casket from the hearse, the officer in charge signals the escort commander to bring the escort to present arms. Escort, attention! Again plays a hymn. At the first note of the hymn, the active pallbearers remove the casket from the hearse. Leads the procession to the grave. It is followed by the chaplain, the active pallbearers, the officer in charge, and other mourners. The casket has been placed over the grave, the band stops playing, and the escort is brought to the order. The active pallbearers remain in place facing the casket. They raise the flag from the casket and hold it in a horizontal position waist high. When the graveside service has been completed, the officer in charge signals the escort commander. Band plays the final music as the flag is fold. The pallbearer at the head of the grave hands it to the chaplain and salutes. It is presented to the next of Kim on behalf of a grateful nation as a token of appreciation for the honorable and faithful service performed by their loved one. The men who serve in a funeral escort are the living representatives of a nation's gratitude. To be chosen to serve in either a funeral escort or an honor guard is a tribute to the soldier chosen because in doing honor to another he does honor to himself.