All right here we go everybody Sunday night NBA 10 box high-end basketball mixer Random team style check the random results anytime of late in sports cards calm I dropped a link in chat. There's link in chat for the football mixture later on as well as down to five Here we go So let's start with some of the current 21 22 stuff. I know it's 22 20, but 21 22 we'll start with mosaic and then mosaic choice To get us rolling here Yep mosaic choice mosaic Good luck everybody. Let's pull some monsters Let's go. Let's pull some monsters mosaic on a nobby raptors red mosaic rookie is a jackson pacers moments josh gitty silver kawaii lender spurs finals mvp mosaic red dairies garland for the calves So outside of the football mixture tonight everybody there's more breaks in the morning with matt on the baseball channel And then i'll be here tomorrow at five eastern. I believe it's either four or five We've got f1 hockey basketball baseball and football tomorrow night five sports mosaic lamello national pride for the hornets red loot canard clippers uh montage jimmy butler Sorry if i was showing glare there Shengyun base, yeah Killin green debut with a silver tail norton tucker for the lakers and a blue mosaic Devon basal spurs 32 of 99 Okay, cutting in national pride and fraud's vanguard debut mosaic alec berks for the nicks red mosaic rookie giddy for the thunder Stair masters rossel westbrook And this thing is over. This thing is over Shengyun debut Silver steven adams for the grizzlies red mosaic terry rosier for the hornets starting five warriors Hit it hard it's the wrong place mosaic carmelo red mosaic ebb and porny a for the nicks Rising stars mosaic anthony award's teawolves silver luka donchage all nba for the mavericks Red mosaic rookie kaminga warriors come on tremer for the third and bones highland base rookies. There's a debut of evan mobily mosaic xayar williams debut grizzlies red jammer and grizzlies Well indeed trolling bead kaminga debut There's the auto it is a rookie auto for the pittons luka garza The silver dany green sixers white mosaic uh, joel and bead there he is 425 nice card for the sixers Shruell and bead Jammer and overdrive Grizzlies that'll do it for mosaic. Let's do mosaic choice now and then we'll get into The select boxes, I guess actually no, we'll do 21 22 prism as well. Then we'll get into select boxes Silver chris paul all nba sons mosaic calling section for the calves rookie auto red and yellow jalen johnson hawks red and yellow choice Yellow parallels now drew holiday bucks 31 of 88 Steph curry warriors 85 of 88 national pride hoku for the thunder 20 of 88 pokusevski Reading green rookies for the jazzjared butler and for the rockets alfred shengun 21 22 prism hobby now Let's see something big here 21 22 chrome products Then we'll do some select rubio wave nazi read teawolves with a hyper rookie josh christopher houston giddy base jillen suggs base silver clinkabella for the Over the hawks silver prismatic ben simon sixers base auto cavaliers rookie rubio first auto in prism guess the right words Just four to go on the football mix everybody four to go 30 boxes 17 prism 2020 nt 21 prism photo Shady, what's up, man? Blue eyes robert williams the third celtics number 34 of 125 corporate jones Or should i say howdy morning Silver chris taps mavericks Hyper tim duncans spurs let's go Oh, man Yeah, jaylon ramsie i mean pretty good trade for the dolphins it seems like i'll take him off day hulsar ben simon sixers blue tarence davis the second to the to the kings 144 of 199 He's got two of no, i don't think they're gonna go after another over after one after one that's off to you I'm retired real quick come get the keys to the lambo silver zoe for the hornets I'll get the keys to the lambo purple eyes so coro for the calves To 149 Kind of wild right vaughn Finn's getting bob agnard jaylon rams would be huge let's go ruby wave joe harris for the nets hyper sons jaylon smith evan moblie base He's still got a couple years in them i think yeah, for sure definitely an above average linebacker silver jaylon brunson maverick silver mindset kevin durant nets Come on prism show us something here right here one time Oh, no, it's go nightmare hours around here right now He's fired up dolphins fans hyper mindset james harden nets a johnny kaminga rookie Otto nice hit for the warriors You go dubs. Yeah, I mean I get the rams wanted to move on and You know get that salary out of there, but a third and hunts are long too like I know rams. He isn't like the best corner league, but he is he is one of the best dvs in the league Silver sergi buck of clippers hyper seth curry 76ers they sold low on him He's like one of the babies, you know Yeah, kind of he ran him off Yeah, like last year on the Super Bowl he was good for them all year This year they had a little bad season. You see I'm telling you man. They sold low on him It was like it it feels like the randy mosh tray. Well from the from the raiders. They sold low ruby wave kelly olinic pistons penny hardaway 75th anniversary magic numbered 14 of 75 Listen to stafford offers. Yeah, they're kind of just blowing it up, right? They have no picks. I mean Bones island and like no cap space. I mean I get what they're doing. I get why It's just it's a strange move Guys, it's last call for that football mixers down to one one spot left all of them are rookie silver for the grizzlies A red prism once it's gone to Anderson warriors Rookie there 120 of 2.99 Not the best prison box guys. We got to pick it up now Come on mixer Let's do select. Let's do 16 17 select And then we'll do 17 18 select There is 16 17 in this right. Do I have something wrong here? 18 19 prism So we did 21 22 prism 21 22 mosaic choice on the mosaic hobby I have 17 18 prism. I have 21 22 impeccable 21 32 noir 19 20 select 21 22 prism hobby I did 17 18 for the mob is there 21 22 and 28 What am I missing? Oh, I have the wrong select here. I need 17 18 select not 16 17 That's the issue Do you want to go run and switch that out? so So yeah, that's what I had wrong 17 18 select. So I have yeah, I have it Yeah, so basketball shelf metal top 17 18 select that'll have like a brown box 17 18 17 18 select It's the only other non 21 22 we have back there really All right, so we'll do 19 20 select now then That's what I did wrong. All right, cool. Glad I caught that So yeah, we'll just have 17 18 select instead of 16 17. So I'm going to switch that out. We'll do 1920 now 1920 select hobby We're trying a little trying starting off with a kevin porter jr. on the uh phenomenon insert calves rj barrett on the rookie red premier level 64 175 solid card for the nix there williams 16 17 was like brandon ingram and london who else is 16 Not in this mixer, but uh silver rookie tremont waters saltix concourse Bam go bear Yeah, this is 1920 select Brandon clark grizzlies on the wow rookie court side zebra Good stuff for the grizzlies nice card Jalen got you. Okay. That was the other one von That's the other big one Nice card there rookie concourse over zion Oh Good box here That was a great pack andre hunter A romeo langford rookie concourse red for the saltix to 199 What's this? What's this? There's a taylor and tucker rookie tricolor concourse for the lakers Demission Admiral scofield that's gonna go wizards. I believe this has expired rookie signatures black prism. Whoa black prism That's a one of one Admiral scofield he was a wizards rookie I'm gonna double check that because it's been a little while, but yeah, he was a wizards rookie I remember he was it was him and ruie in the same class if I remember correctly Black prism. Yeah wizards one of one redemption admiral scofield Sweet there it is See the other one on the shelf there pretty much uh in the back just put on the shelf in the back Yeah, just next to the the ones that are all like out because those are in the box. Perfect. Perfect Black prism redemption admiral scofield wizards They may have that. I I don't know. They should have a one-of-one prism auto still there select auto I do not know Bulls Wendell Carter jr. Blue premier level 241 of 249 You can top with that Ja marant rookie courtside for the grizzlies Fernando Yeah, pr getting kind of getting in here if they can drive in some runs right here. There is garland concourse rookie Silver demona subbonus. That was a jaw quartz. I by the way demona subbonus silver premier level for the pacers Yeah, they might have it. I don't know. You have to check with them. Maybe they'll give you something cool for it instead Stop to go up an Indian. Yeah, unfortunately premier level scope window Carter jr. Bulls could be white Either way, this has been a good box. I know the redemption one-of-one is expired, but it's been a good box Paul george premier level try color for the clippers still had that zebra brandon clark and a silver zion A couple of a few jaws as well To 99 fattiest young bulls on the jersey card Silver concourse rookie therias garland now Here you go calves. This has been a really nice box actually There he is. There's sco Kyle attacks me. He told me he loves admiral sco daren fox swiper to the 299 for the kings light blue concourse A Dwight Howard rockets jersey card Rockets Dwight Howard jersey Tri-color concourse debook sons Fielding george. All right. Good stuff. There's a 1718 select That's the one I was missing 1718 select now. That's the one we're doing See if shone grabbed the winner All right to 99 dj wilson jersey auto for the bucks Vaughn probably enjoys seeing that card Ron on the was at premier level concourse. That's the concourse premier level was the one I had That hardened for the rockets markel folds concourse rookie Got red jason tatum See there. He is shone picked a winner Six of 199 concourse rookie Celtics. That's what I do. Wow. Wow way. Wow I believe him now peter Peter am with the seas There we go markel folds on the insert phenomenon insert sixers Josh heart as a laker that feels weird to say Father tatum his phone calls Let's shone pick all the boxes. There's a tatum base Deontay Murray is an insert or is that court side? Court side. That's the court side there. Deontay Murray silver courtside spurs Cunningham jerry graham Sometimes one for tees would gather just hit gas. Yeah There's a scopy honest concourse the bucks 150 points right at the end. That is not a lot for a prison box or a select box westbrook A tyler dorsi hawks rookie orange to 75 Tyler dorsi shabazz shabazz mohammed. Wow Dennis shrewder as a hawk. It's like seven teams ago for Dennis shrewder Brogdon as a buck. That's forever. You know josh jackson. Wow silver tyler johnson for the heat. Remember him Coos more rookie It's premier level. I believe in the Coosmo. What do we have here? Oh, is that a tie-dye? LeBron James What I do court side 225 tie-dye calves Oh my god Dude, what did shawn do? Told you don't mess with me congrats calves Dude, what a heater We're gonna forget about those points real quick now. Good lord There's a j crouter calves. What's what card is bigger the j crouter the lebron try color there Steph curry base 25 minus two equals jersen ever. Oh ebay one of one is what you're saying Silver air sign of the asoba hawks. Oh man, dude. Vaughn is loving the air sign of the asoba right there Silver andre roverson thunder Oh, man, there's a gold now. Oh my god. It's a gold court side. Is it? Oh rookie terence fergusson for the thunder rookie gold court side or uh, yeah court side eight to ten Reggie jackson try color the pistons One, I wish Jalen jones, he wouldn't tell y'all You would you would see signs that he'd walk in here the gigantic chain Oh, yeah And uh shell top of dealers in the track suit A lebron james concourse blue now For the calves and a zaza behind it. Oh my god. It's a 299 lebron and a zaza Oh man 17 to 49 orange or like bronze conger court side Oh boy warriors zaza patchouliah Oh jeez Ronitana vs. Durkin jordan. I say Durkin jordan. Hey, oh man.  Oh boy. Nick stauskas in Alonzo Wow that box had the heat Good god All right, let's uh, let's do 21 22 impeccable now and those are huge cards Oh, we got a bar. How about that? We got the bar out of the case. Let's go Sam loves dude.  Yeah pretty much Just put some butter on it. I think it was the Zach. There you go. That's right Zach's boots to 99 bulls you got Zach's last night. Yeah Zach's piece is pretty fire sometimes Okay, there's your other base parallels Shade oldest alexander to 75 thunder and age. I'm all Murray. It's a 49 for the nuggets Isaiah Todd rookie auto wizards to 99 Yeah, the crowd is awesome PR PR getting back in it kind of Scary times for uh, venezuela. You gotta you gotta figure it out here Nuggets alex english impeccable victory auto to 99 Well, I wanted to switch it up The only reason I'm doing impeccable now is because there's it's I didn't want to do all 21 22 at the very end you know what I mean Gary Payton sonic 22 is 75 75th anniversary auto This is gonna go to the thunder, of course Nice gp the glove And redemption goes to Wow, Vince Carter elegance retired jersey autograph hollow gold Vinsanity Let me check this one out really quickly 21 22 impeccable basketball Vinsanity that's card nine in the set Vince Carter card nine raptors Toronto raptors Congrats on that one. That'll be sick gold to 10 In a bar card. How about that? No way. No way LeBron James 17 to 20 Lakers LeBron now Mixers good y'all mixers good. It's hot Troy ounce of fine silver NBA logo Great card there maybe LeBron for the Cavs and for the Lakers. I like that though I like that Um I guess we'll do Prism then noir and NT. I guess No, I was doing the war Let's do noir I want to I want to break up the years a bit here So 21 22 noir hobby then we have 18 19 prism to finish I think we'll do that the towards the very end but noir here 21 22 hobby We hit a cast LeBron We haven't hit a heat LeBron Yeah, the tie-dye the tie-dye was a uh was a cab because that was 2017 2018 select That would have been his last year with the Cavs. I think right All right, here we go. Here we go. Love noir. Love noir. That's probably my favorite basketball products Here we go RJ Barrett next to 99 I don't know if we'll see heat LeBron in this that'll be really tough to see heat LeBron in this to be fair to the heat Draymond to 35 warriors Trey Murphy the third rookie for the pelicans to 99 Into the hits now the Uh three pdm vp pretty soon here yokich to 99 nuggets on the uh jersey game worn jumbo material dish night patch card reggie jackson clippers to 25 Cj McCollum dish night patch card to 25 with the blazers Nice to color 4 of 10 thunder tail maladon on the autograph For the thunder 4 of 10 thunder again back-to-back hits here rookie auto jeremiah robinson url 31 of 99 shadow signatures redemption nicks sneaker spotlight signatures julius randall actually I'm gonna check that sneaker spotlight Should be may not be I'm like 99% sure but gotta be 100 I think he should be all he should all be all nicks and everything in this but Sneaker spotlight sometimes they get sneaky. Yeah, okay. It is nicks. I just wanted to make I just wanted to be a hundred percent sure there you go nicks That'll be a really nice card to get there. He's having a great season. They're having a great season I gotta be a hundred percent. That's not my card and 75th anniversary auto dirk nevitski 17 of 75 Hidden vet hits all over the place here Mavericks congrats on that great design on these We'll get that bag for certain. That's a big card. All right, here we go. Last three of this mixer Let's do 17 18 prism 17 18 prism hobby The Celtics kind of doubled it with another numbered tatum here Round of going off tonight 18 points in the first.  For the for the nicks auto nicks tim hardaway jr silver wade baldwin a fundamentals hyper West unselled bullets go into the uh The wizards of course Yeah, we are sold out for the night everybody just fyi Sold out for tonight Appreciate it y'all matt's live at 10 am east one more baseball breaks tomorrow tomorrow evening I'll be here with dylan and kyle And we've got f1 hockey baseball basketball and football. That's right five sports five sports with forested five Like a sprinkler The spit sprinkler fundamentals buddy heal the hyper queen snider jazz A ruby wave behind it is avan gentry pelicans marksman rookie bowls Oh nice josh. Well good stuff for you then on track. That's for sure. Oh, yeah Leiden silver james harden for the Rockets Evan turner blazers blue to 199 Evan turner blazers white howard as a hawk or no hornet. Sorry a hawk jersey hornet's card. Remember that era of Dwight howard's career Lonzo rookie Wayne selden And i was a taiwanese league legend Jared allen rookie for the nets I'm stuck here or something Howl every fundamental silver rookie terence freggis and thunder blue ice d wade bowls It's a 99 d wade blue ice bowls frank mason frank jackson josh jackson hyper reggie bullock pistons ruby wave jabari parker bucks All right, slow start here. So rise prism. All it takes is one or two cards to So having to select Markel fold truck it. There he is. Let's go magic john collin's rookie We're all coming up I think Frigo bear fundamentals petty mills Get hyped silver Bradley Beale wizards vince carter as a king with a grizzlies jersey on Oh boy I don't remember vince carter as a grizzly or king to be fair j wilson Bolts emergence silver rookie josh hard lakers at solid rookie silver blue marcus smart celtics 161 of 199 Bobby porters as a bull Getting closer to something big here. You've seen some of the decent rookies and like silvers and stuff. So Bama to bio base heat rookie terry stotz These little stuff together. Sorry guys I'm the best hyper tylu calves ruby wave rookie Caleb swanigan blazers He a little bit swanigan y'all Stay man over y'all You are been pitching better recently This auto is coming up. I believe Mere nelson as a nugget. That's weird Silver rookie auto Caleb swanigan blazers Silver rookie tj leaf pacers hyper lonzo ball emergent for the lakers one evans He did pass away didn't he kelin? I forgot about that honestly. I forgot about that. It's crazy Silver rookie admin summoner for the pacers purple julius randall lakers 63 of 75 I totally forgot about that frame until keena loot canard pistons rookie Hyper wilson chandler nuggets a ruby wave behind it of abry bradley pistons Was a pistons card Our last pack 17 is to come on now 18 19 is next dsj Get hyped hyper use of narcage blazers A little bit of a lackluster box there Let's see what 18 19 you bring. At least it's 17 18 slyphos fire Thanks to sean All right, here we go 18 19 prism now Come on gold luka Come on gold luka. I'll be shaking if I pull that Maybe we'll pull the one-on-one make somebody super rich It's still out there silver deer and fox kings Ruby wave rudigo bear jazz It hasn't been pulled yet Not that anyone knows of no, right kevin kevin hervey hyper diante mary spurs elvin frazier silver alfred payton pelicans Ruby wave mark gasol grizzlies I'm hoping Yeah So it's like money to bank And you drive at the price Very thomas red jordan bell warriors It's $2.99 We got some color coming up ruby wave rookie bruce brown for the pistons We haven't seen a whole lot of color yet.  No, you might not know silver andre drummond pistons Hyper hezonia nicks. That's that's a that's a card right there for the nicks mcowbridge is rookie for the suns Dude balling now with the nets Obviously, we'd probably know but hey, you never know All it takes is one person to pull it say like, you know, I'm just Not gonna I'm just gonna sit on it Sit on it All it takes is one crazy person to pull the card, you know Hyper miles bridges hornets luck of the lottery kevin herter on the base auto for the hawks hyper rookie a cobo for the suns elvia cobo Dwight Howard is a wizard with a hornet's jersey, dude The last so 1718 prism in the 1819 prism has Dwight Howard There was hawks jersey hornets card and then Hornet's Jersey wizards card Oh boy, he got his ring note the Lakers And then he yeah, and then he Honestly kind of had a resurgence. He was like good with the Lakers Grayson allen rookie silver oscar robbers and bucks I mean, I don't feel bad for Dwight ruby way paul pierce Celtics The 108 rookie for the suns purple ice rookie Alonzo treard nicks Number 92 of 149 nicks Alonzo treard hyper clay Thompson warriors Okay, let's just see a luke rookie at this point four packs left Let's see any any nice prism rookie. Come on Herter silver julius randall for the pelicans all day chris apps for zingus Come on time lord rookie ruby wave jason tatum celtics on the second year Please that'd be only his last two packs. Dude any number luke would be safe though like Trent your trend solid It's rookie silver coming up after marvin bagley melvin frazier magic okobo on the rookie auto for the suns hyper ben simon sixers Oh, there's a base right there nice All right, we got a base. Let's see something big in the last pack here There's a mojo coming up. That could be a monster All right, so we've got red durgnovitsky mavericks to 299 76 299 mojo rookie jaylon brunson Nine of 25 mavericks That's awesome. Congrats mavs Sneaky awesome hit right there Mavs crushed the break bob h Congrats bob Great time to get that that'll go nice with that jerk and the break for you, man Didn't in a luga, but that's still very awesome mojo brunson And then nt to close this out you have a point random to do as well 21 22 nt to close this out here. What's up mark mark? Yes, that's big He's probably top three or four working in that in that class now And this is like his first season as like one of the go-to guys on a team so Got us on big contract now and everything Uh suns debook to 75 base parallel printing plates suns was a charles barkley All-time greats suns Retro materials that is a sick patch to 25 slater martin for the hawks That's so sick three color hawks patch Game gear jerseys sixers james harden Be like we're pulling some big cards mark Having a good Sunday evening Rookie autos ricky signatures trim every the third to 49 pelicans Very nice on-card rookie out of there redemption Evan mobly rpa calves There we go congrats calves True rpa on the mobly true rpa mobly redemption That's what's up Good good good box here for sure with tm3 and uh and mobly jersey card nuggets erin gordon 1099 Ludworth thunder game gear jersey for the thunder to 99 definitive ink for the lakers kendrick none 98 of 99 Yeah, but it says rookie patch autograph doesn't have a parallel that means it's the true to 99 And rockets auto erin gordon to 49 So yeah, I'd actually have the term rookie patch auto on it rather than like rookie signature material or whatever it may be, you know And then if it has a parallel it would be not to 99, but if it doesn't it's just like the basis to 99 so 150 I They did not put a lot of points and products back then apparently that was from 1718. I think That is a six and a two Eight times Whatever's up top get some one two three four five six seven and eight pistons Quick recap. What a fun break that was thank you everybody for filling that out. Thanks for filling up all the breaks tonight Go with the recap relics up front erin gordon The nuggets lew dort james harden for the nets there slater martin cg mccollum as a blazer ready jackson as a clipper nicolay yokech ojalei Dwight howard as a rockets. We had Dwight howard in like six different teams in this break That he's young bolster is he like not even kidding. It was like six different teams in this break autos of erin gordon kendrick none trey murphy the third nice hit pelicans elliocobo kevin herter Caleb swanigan This is just an insert. Uh, tim hardaway jr Jeremiah robson url tayo malladon to ten gary payton nice hit for the thunder there isiah tod alex english for the nuggets there jersey auto dj wilson for the bucks We had kaminga rookie auto ricky rubio For the calves ricky rubio jaylon johnson lucah garza Admiral scofield black prism Rookie signatures from 19 select. That's a one-of-one for the wizards. Maybe they'll have that I do not know that is a one-of-one though for the wizards Uh, nitch lewis reynolds sneaker spotlights and there's a big card for the nicks nice one nicks We'll get that one mag for you Then we had true rpa calves from 2021 nt evan mobley mojo rookie jaylon brunson mavericks the 25 The dyrk nevitski to 75 75th anniversary order from the war Lebron james silver bar to 20 for the lakers Raptors vince carter elegance retired jersey auto hollow gold redemption from impeccable rats raptors tie-dye court side lebron james from 1718 select that is sick two of 25 calves And concourse rookie red jason tatum for the celtics Six of 199 That will do it. Thanks again everybody. We're on to football now


This study will use a novel approach to monitor the health of older adults following a moderate severe traumatic brain injury, TBI. It will utilize passive and wearable sensors to measure physical, functional and cognitive outcomes, as well as changes in sleep and activity patterns. This information will be analyzed using machine learning techniques to identify any changes in routine behavior and predict clinical events. Additionally, qualitative interviews will be conducted with patients, caregivers and clinicians to assess the acceptability and utility of the system. This article was authored by Parish Malhotra, David J. Sharp and others.


In this presentation, we will cover the static timing analysis. There is a tool available with the development kit that is called the SPU timing tool. So it will give, once you write your code, you want to see how many stalls were there, how many branch operations were taken, where were the delays, where were the dependencies. So this is a static timing analysis tool which will parse your code, look at the assembly file and see and basically try to give you an analysis of how the code is interleaved. So basically this is how it is done. Take a simple source code, example.c, produce the assembly file and then produce the annotated assembly source like it will, in your current working directory, when you run the command with the timing tool, there will be a file.s.timing. If it is an example.c, there will be an example.s.timing tool in the current working directory. And this is the command options. This is how you say SPU underscore timing. And these are the options that you can give on the command line. Help will display whatever the verbose thing and then you can specify the architecture. Are you trying to profile? Basically you can provide the target architecture with the minus m option. And then you provide give the name. If you don't want the default naming, you can give a different kind of name on the command line. And then you can count the number of cycles from the start of each instruction by giving this parameter my dash running dash count and then the input file. So now let's look at a source file and see how basically this tool is used. In input vector, there is an input number n coming in, float, one float variable coming in. There is an array of vector. There is an array of a vector underscore float and then there is another array y, x and y. So, SPU underscore splats take a value, takes an input value of a scalar variable and then produces a vector variable. So, what this vector element a will have. Now, alpha is what a float variable, right? So, this vector a, it's a vector. So, there will be four floating point variables in that vector a. So, SPU underscore splats will take this scalar value alpha may say it is 4.5, right? It will inside the vector a, it will put 4.5, 4.5, 4.5 and then 4.5. So, there will be four values of replicated across the whole vector. And then you do a multiply add. It's basically multiply x, i and yi and then you add it to a. So, this is what this simple scalar code is doing. Once the assembly code is produced, this is how a typical assembly file looks like, right? For any source code, a simple C program. Now, this is the annotated source, example.s.timing. That was the example.c And this is the annotated source code. Now, let's look at the different features, how to basically understand what this source code, this timing file is saying. So, the first thing to observe is the running code. Over here, they're basically the, a few important columns, right? This is the first column to observe. This is the second column to observe. Again, we will go into further details of what these columns mean. And then there's a third column over here, which gives you the pipeline an idea of how the instruction pipeline is looking like. And then the text portion and the data portions over here and the instructions and everything. Okay. So, the running count, right? The cycle count for, basically running count is a cycle count for each instruction. Every time an instruction starts, it tells you how many cycles is that instruction taking. So, in other words, if it is a shuffle B operation, it takes two cycles. So, by adding up all these values, right? For our example, our loop is 17 cycles, right? Because, so, you know, this is where our loop is starting, right? So, 23 and then 6, 23 to 6. So, this is how you analyze how many cycles it takes. And this is, again, a static and access tool, there's more tools available, which make it a little more simpler, give a little more simpler output. This is the execution pipeline. We always keep talking about dual issue, dual issue, dual issue, right? How do we make sure that there is actually dual issue happening? So, in this one, every time there's a zero or one, the first column in this, or the first sub column in the second column always tells you which pipeline it's going into. So, if it's a zero, it's the even pipeline, right? If it's a one, if it's a one over here, it's the odd pipeline that this particular instruction serially is using. Dash D, there, if you notice, there is some D's are capital letters and there is some D's that are small letters. So, the, so, the second sub column in the second column talks about the basically the dual issue status. Is it, is the dual issue actually happening or is there a dependency? So, if there's a small D, basically it's saying dual issue is possible, but there is some dependency. So, that instruction can be issued along with the even pipeline or the odd pipeline, but there is some dependency that's stopping the, you know, the, the, that's stopping the issue of dual instruction, dual, that will stop the dual issue at runtime. And if it's a capital D, it indicates that yes, it will be dual issued. So, in other words, it's a good thing when you see zero capital D and a one capital D. That directly means that yes, capital D dual issue is possible and it will happen. And a zero and one means what? It's an even and odd pipeline. So, ideally, your second column should always look like zero D, one D, zero D, one D, things like that. That means your code is really efficient. Otherwise, you have to see, oh, there is some dependencies now and try to rearrange, restructure the code. So, the dependencies is removed. Now, let's look at the third column. This is the pipeline. Instruction clock cycle, which denotes the instruction clock cycle occupancy. So, there is different digits. If you see a digit 0 through 9, basically it will, it is, for every instruction clock cycle, there's a digit that will be displayed. And if there is a, if there is a dash, you can always accept basically, that means there's a dependency. The instruction is ready to be issued, but it cannot be because there is some dependency with the previous instruction. So, there is a stall basically. Therefore, if there is a steep sloping of these, of this instructions digits, that's actually very good because that means less dependency and it means efficient issue of instructions and shallow sloping. Usually, you know, I think even this is probably okay, but it could be better. I mean, if it goes like that, like the slope, it's very good for your program. If it's like this, you know, shallow is not good because it just denotes that there's more stalls. Now, let's see. The inner loop over here, for example, we're seeing that these two portions are showing a lot of dependency stalls, right? So, basically the load of y stalls, one cycle for address increment, if there's one dash. So, therefore, the resulting, the store of the resulting y, right, stalls five cycles. If there's five dashes waiting for the FMA operation, this operation to complete, I think they're looking at the over here. So, for the FMA operation to complete, there's five cycle stalls over here. So, let's see what else. Now, dependency stalls can be eliminated by unrolling the loop. However, let's keep one thing in mind. Even when we are unrolling a loop, make sure that you're not using local variables that are not the same. For example, if there is a variable A that needs to be computed in the first unrolling of the loop, use different variable names. Otherwise, if it's the same variable, the compiler gets confused and it thinks, oh, for the second version of unrolled loop, I need that variable. It's not needed, but it introduces false dependencies. So, even though you give the optimization o3 level to the xlc compiler, nothing might happen until you make sure that these false dependencies are not introduced in the code. Okay, profile markers. There's something called, there's a header file profile.h, which has instructions which read prof underscore cp and then there's a number. It could be 0 through 1 or pick any numbers that are consecutive. You can say prof underscore cp0 and then prof underscore cp1 and keep the loop in the middle. Let's look at an example before we talk any further. So, for example, this is our loop, right? This is our vectorized code. So, now we want to see what is the performance number. Now, we don't want to basically capture all this overhead. We want to capture, any time we want to profile code, it should only be in front of the computation just before the computation main, computation kernel starts and then before, after it ends. So, in this code, when do we want to start profiling right before the loop? And we want to stop profiling right after the loop. So, if you see the for loop is starting right here, we start prof underscore cp0. What it does is it starts capturing the cycle information. So, it will start capturing the information for all the loop iterations and then it will print number of cycles it used up, number of stalls and it will produce all this information in the timing tool and the statistics on the simulator. And in the assembly code, you can you can identify it because it introduces this instruction over here, the l no op instruction. Let's see, there are some limitations. If you are writing your handwritten assembly code, it may not work as well. This is a language that the compiler understands because it is trying to do the disassembly of the code. It is trying to just generate the assembly. So, it understands its own effort. It's like someone else cannot understand your code, something like that. So, if it's handwritten assembly, running the timing tool on handwritten assembly may not produce the same results. It's always the most beneficial use of it is when you're writing the source code in a high level language, cc plus plus whatever and then we're trying to profile it via the producing, you're running the timing tool on it because the compiler itself is generating the assembly file. So, that's the static timing. Let's go over to the dynamic runtime analysis. How do we do that? So, the class objectives for this is to see how to do runtime dynamic analysis and how to produce that output on the simulator in a very user-friendly, understandable manner. So, when we do these profile checkpoints that we covered in the previous presentation, so this is how you can introduce profile checkpoints, prof underscore clear, prof underscore start and prof underscore stop. Now, when you do that, it will produce an output of number of cycles consumed and here is the loop part. This is something that you will introduce in your code. This is the output that it will generate on the simulator. It will say, depending upon the number of the SP used, it will print the SPU number over here and then it will say CP31, that's a checkpoint and then it will tell you the instruction counter, total number of instructions including the NOAP and the outer braces and then in the braces excluding NOAPs and then the total number of cycles used. So, for these many instructions, the total number of cycles used were these many and in order to extract that kind of information, we need to tell the simulator that you cannot just run in fast mode. We have to change the mode of the simulator to say pipeline mode. So, in other words, when you put the simulator in the pipeline mode, it will record every single cycle. These are the instruction classes, all the instructions that we are dealing with arithmetic memory, all these instructions fall under certain categories and that category is defined and the even and odd pipeline is based on that category. So, all single precision floating point operations are called FP6 and they are always in the even pipeline. All the branch instructions because it is a kind of a decent memory. So, we will be falling under VR class and it will go to the odd pipeline. The NOAP loads and stores branch and store branch hence all fall under this category LS and LNOAP and then there is the loads and stores can be they take six cycles every load and store and then they go to the odd pipeline and all this information is important is necessary when you are basically writing your simple application and because if you are trying to do an add right, you will know that it will definitely go to the even pipeline because it is an arithmetic operation. So, after that if there is an if else statement you want to structure your code so that if there is a branch taken make sure that it is right after the computation or right before it. So, the compiler can automatically restructure the code and issue it in the two pipelines. So, it is it is concurrent. The point of you making it forcing the dual issue or make writing the code so that the dual issue happens is so that you save the cycles right. It is all about the cycles we are going to reduce the cycles at any cost bottom line. So, there is a the simulator provides these statistics and you can basically type on your on your command prompt like this particular command and it will print some data we will see that in the hands-on session if you want to use a GUI stat controls.  Now, the simulator output will be looking like this. So, the first give the first section gives you the complete summary it tells you the total number of cycle count the instruction count and CPI. So, number of cycles per instruction in the code. So, it is a very useful thing because a lot of times actually ever ever before I joined self-programming the most I used to think about is how to write object oriented code and how to make sure that it is the coding standards are good and but I never really worried about performance after until I started working on the on the on the self-programming and then there is a few things that I realized I could just do real neat and I could apply it back if I went back to my previous position.  So, it gives in other words if your cycle count is way too much and you know that it is a small code obviously there is something wrong going on and it is not visible to the naked eye but you know you can have you have all these tools to run on the code to get to basically observe the behavior and improve it. Okay so this is the full summary of the output right now let us go deeper down the first section gives a total number of cycles and the instructions complete instructions executed by a program and then the cycle count usually it should be somewhere less than one it is really good if it is less than one if it and usually it should be between one and two otherwise there is something not right if there is more than two or three or four. So, total number of cycle count is here instruction count is here CPI is here and then the let us see the performance cycle count basically the performance cycle count is basically when you started profiling the code right before the total cycle count is all the instructions for the entire code performance cycle count is for the parts that you are trying to profile and optimize the that particular kernel and then you can also get performance no op count and you can also get performance instruction count you can also get branch and hint status the hint statistics so you all you can you have all these the total number of branch instructions is 14,000 something something over here right 143,000 so you have taken actually you have taken these many branches no wonder the cycle count over here is so high 8.55 branch is not taken is 280 so you can get all these statistics and that determine the nature of your code and if you have any used any hints in your code it will give you a summary of how many hints actually worked there is also this efficiency statistics single cycle you know number of dual cycles how many instructions did use the dual issue pipelines there is also no op cycles that really need summary of everything that you can possibly know about your code. Prefetch miss dependency stalls if there is an dependency stalls it will give you a complete list of how many dependency stalls were there so in other words the point to notice over here is dual issue cycles so the point to observe here is basically to see how many dual issue cycles were there how many prefetch miss stalls were there the most important thing the dependency stalls reduce dependency reduce dependency reduce dependency in the code that is the key because otherwise no matter how good the code is you are trying to vectorize it if there is dependencies it cannot be parallelized the compiler has got immense capability to parallelize the application but if it is not well written even the compiler cannot do anything unless it is you want to write your own assembly code all right what else hint target stall bypass stall all this information it is a and this can be very useful presentation for you to refer back to when you are right going you know when you go back from this class and you write your own application code you know refer to these you know these features available and see what they mean and how to use them okay and then there is another command line option available which says on the command simulator prompt once it is the simulator is running you know that window which gave all this garbage all this in the addresses and all this trace output was coming over there you can go to that window and hit control c it will give you the command prompt or on your GUI window you say stop so it will halt the processor and then you type this command and my sim my sim spun display statistics so it will hint it will print a complete you know complete recap of the number of hints the number of branch instructions that were not taken you know the number of branch instructions that were taken the number of hints the number of hits so this is actually very good there were so many hits for the hint instructions or branch hits and there's another option that's available where you can provide the parameter hint so spun will be you can see by when you hit control c you can see what spu was used was zero or a seven or four so you provide this that as a parameter and you enter this command and you can get all the hint status data and then you can see if you are really you know low level person then you can see what is the usage of registers the register reads the register writes and it gives a very good idea that if and once you write your application how many register reads and writes were done and then there's an option on the simulator which says which prints the event log in other words when you try to print the event log it will show you the summary over here in this little neat box it'll give you the number of cycles per instruction counts right dma operations counts how many gets were there how many puts were there how many translation faults were there on the PPE side there's no average address translation remember on the spu so that can only be for the ppu how many fetch groups were issued issue groups this is a control panel where there's a you know more data gets printed and this is just a general execution and then there's a visual visualizer summary display where you can get the number of dma gets inputs cycle instruction count the channel come stalls everything and again there if you see there is like all these eight windows for eight different spus and when you do a pipress this is how the output looks like there's some more information available you have the materials on your cd but do try to go ahead and check this link out it's on developer works there's a really neat paper written about how performance is expected on the cell systems immediate or some processes that that are used and it's a very user friendly it's a small paper that you can that's very good beneficial information


TESOL Arizona Due to a long history, influenced by a booming copper industry, the state of Arizona was nicknamed the Copper State. Today, it is one of the most popular places to visit in the country with a great selection of natural sights and attractions. The most famous is probably the Grand Canyon National Park. Every year, millions of visitors come to explore the spectacular canyon carved out by the Colorado River. Since 1979, the Grand Canyon has also been a UNESCO World Heritage Site and is one of the oldest national parks of its kind in North America. Another example of Arizona's beauty is Sedona National Park, where wind, water, and time have formed sandstones that glow in hues of orange and red. Besides the unique stone formations, the National Park also has a collection of waterfalls where you can take a cooling swim. Oak Creek Canyon is another popular spot where wide expanses of greenery create a lusher ambience compared to other canyons. Visitors to the parks can also engage in a range of different activities, such as biking, hiking, and horseback riding. The more adventurous can also try rock climbing. As you can see, Arizona is a true paradise for outdoor lovers. Not only do the many canyons offer exciting hiking and biking trails, but Arizona's many beautiful rivers and lakes also provide a great venue for water activities. Visitors and locals can enjoy kayaking, fishing, jet skiing and swimming. Whitewater rafting is another option for those looking for a more thrilling adventure. The city of Tucson could be the perfect location to shoot a Wild West movie. However, you will also find relaxing resorts, golf courses and abundant shopping facilities. The city's fine culinary scene has earned Tucson the title UNESCO City of Gastronomy, one of the first of its kind. The city of Cottonwood is another culinary gem where top quality wine making is possible due to the rich soil and favorable climate. Wine tasting among the vineyards is the order of the day in this area of the state. When in Cottonwood, be sure to stop by Oak Creek Vineyard, Javelina Leap Vineyard or Alcantara Vineyard. These family owned wineries will be happy to serve you. The city of Phoenix is the largest in the state and an interesting place to visit. Shop at Kyrland Commons or Biltmore Fashion Park to get the best deals while a range of luxury resorts offer the perfect place to unwind and escape the hustle and bustle. ODC Aquarium is home to sharks, turtles, penguins, jellyfish, octopus and more. Other popular attractions in Phoenix include Frank Lloyd Wright's Winter Home and the Musical Instrument Museum. Besides being a premier vacation destination, Arizona is also a great place for your studies. Northern Arizona University has 36 different campuses across the state and offers some of the best programs in the region. Taking your TEFL TESOL course in Arizona will enable you to start an international career teaching English as a foreign language. Sign up for our training course today and become a qualified English language teacher.


So, last night my girlfriend and I were watching a reality TV show called, or actually take that back. I was watching it. She was in the other room called Love at First Swipe and it's a basically a makeover show for people to improve their dating profiles. And I thought this would be an interesting conversation to have today because the reality is meeting people today feels like it's incredibly hard given that predominantly these days we meet people online more so than organically. And I thought well how does that relate to commitment? What's the challenges today getting guys to commit? So give me a few minutes I'm going to intertwine these two things together. So in this particular episode there was a woman whose profile looked like most of her pictures were taken in lingerie even though they were dresses and most of the photographs were very seductive. And while she was defending her position by this is who I am, this is who I, you know this is my personality, she also said most of the men that she meets in the online dating world according to her are pigs that only want sex. And the makeover people were saying well look you're putting this out there and yet she was still arguing her position. Now what eventually happened was they did a complete makeover they made her seem like the girl next door type which they did a fantastic job I have to admit that. And her and she ended up getting a lot more activity in the online dating world. So part of the challenge we have today in the dating mating relating world is the attraction piece. In other words getting interested parties into us. See it didn't used to be this way you know when we think back 30, 40 years ago in fact while my beloved and I were on a cruise recently we sat next to a couple who had been married for over 33 years and what's interesting they met they said they met cruising the boulevard you know this was back in the day when cruising streets in a small town used to be a big deal and I thought that was kind of a cute story and when they were happily married they appeared to be happily married for over as I think I said 33 years they have four children and I asked them it's the secret what was the secret for the two of you to really get this far into your relationship. And they immediately both said literally without batting an eye is they said they married their best friend so okay so why am I bringing this up because it seems like this is the common thread for happy successful relationships they married their best friend and it doesn't mean that they were the best friend when they met is that they became their best friend so how do we go from this person who's a total stranger and on a screen oftentimes where you know little about them to end up becoming friends well I think it's really important first that if you're going to use the medium of online dating to connect with people that it's important to put your best representation of yourself the quality representation because a quality representation will attract I don't like using the word quality people but people more aligned to who you are and what you really want and then secondly is throw out the dating narrative that men are the leaders and that they must be completely in charge and why I say that is most men are rather clueless these days it's a completely different world than it was 30 40 50 60 years ago and what I am encouraging people to treat the mating process as a two-lane street in other words they equally invest in getting to know one another but the important factor in getting to know one another is how to build that friendship because if it seems like that's the common denominator for happy couples then how to get there is the most important piece how do we get from from that place where they're a total stranger where we actually get to know them to actually becoming friends with them now here's the challenging part for most of us in midlife because most of us in midlife come to the table with some childhood wounds or traumas that's right childhood wounds or traumas or adult traumas most often the adult trauma is going through a significant breakup or a significant divorce and what happens is people aren't actually bonding through that friendship piece they're bonding through their individual traumas with one another and they feel a sense of familiarity a feeling a sense of camaraderie a feeling a sense of belief of friendship and yet that's a very weak link a very weak link to build a relationship on is through your individual traumas what and most of the time it's the trauma of going through a divorce or a significant breakup and part of the challenges is when you go through a breakup or divorce there's an unraveling of the tapestry of your old life and what happens is people immediately attach themselves to someone else for that companionship that connection that sex without really being in a position to actually commit to another human being and more importantly being emotionally healthy enough to be in a significant relationship this is why in my relationship hierarchy I talk about the the four elements of the relationship hierarchy is first is being your best self emotionally physically spiritually being your best self in your mind body spirit and emotion being your best self number two is really understanding the importance of compatibility and more importantly that friendship piece and what it takes to actually build a friendship with someone that third piece is the attraction piece in other words being putting out the best representation of yourself and lastly and most importantly is the understanding of it what's it take to maintain a good relationship and more importantly what does it take to make it thrive so what I've observed that common thread with men and commitment centers around that piece of friendship and friendship isn't going to be built through your individual traumas friendship is going to be built or at least this is my invitation for all of you is through social activities hobbies mutual interests spending time with family and friends traveling together it is critically important to find your common mutual interest with another human being and quite frankly exploit that what I mean by exploit that is really cultivate that as much as you possibly can because without it it's not going to feel like you build the deep roots of trust in your relationship and ultimately what is it what is that friendship piece about it's about saying I can trust this person to be there for me when I'm going through a hard time this person cares about my best interest that's really the element of friendship but more importantly the other element of friendship is not about love it's about genuinely liking the person you know it's the common thread it's not love love is oftentimes we associate unhealthy attachment with another human being as love but ultimately what the common thread that I've seen with happy couples particularly men happy in relationship is that they genuinely like that person they genuinely like that person because they genuinely get along with one another this is why folks I'm habitually telling you the importance of spending a lot of face-to-face time together to build that friendship piece through social activities hobbies mutual interest that's why I'm not a big proponent of long-distance relationship and while I briefly had a long-distance relationship what I mean to say is we did have distance we shorten that distance quickly because we recognize the importance of building that friendship piece to build the deep roots of trust in our relationship ultimately if you're not contemplating this if this is not in your consciousness I'm here to say if you're giving the job to the man to be in charge of your relationship destiny you're giving the job to the wrong person not that men aren't good people but this isn't in their consciousness and this is why I invite you to I said the word exploit but what I really meant earlier is cultivate those social activities hobbies mutual interest spending time with family and friends to build those deep roots of trust those deep roots of friendship that's going to carry the relationship maybe as your last relationship you ever have in your life and that's my hope for all of you is this sinking in is this resonating please let me know all right I think this would be a great place to wrap up this video first off if you find value in the group please tell your friends about midlife love mastery send them to my website Jonathan as a comm have them click the group coaching button so they can join our fantastic group and I'm gonna sign up this videos I always do first off give them myself a big gigantic Jonathan bear hug of self love I'm gonna reach into the camera and give you a hug of love if that's okay I'm asking you to turn to someone a pet a teddy bear pillow and give it or them a hug of love because hugs are a great source of love and let's face it we could all use more love in our lives thanks a bunch bye bye now bye


Okay, let's welcome Matthias for his talk about the status of AppStream in Debian. Okay, thank you. I will be talking about AppStream in Debian, which is a project which is designed to enhance the metadata we have available in the software archive. It's also known as DevEleven, the Debian extension project 11, but since all the stuff that was in DevEleven has been merged into AppStream, you can basically exchange those two terms. So AppStream is DevEleven. So because AppStream is one of the lesser known projects in Debian, first of all, what is AppStream actually? It besides from having a very bad name to talk about at conferences because it's constantly confused with AppStream with the U, so I hope I can make it clear when I'm talking about AppStream projects and AppStream, the thing that's metadata. So AppStream is a metadata format which is shipped by AppStream projects. It's a small XML file, which is commonly found in user share meta info or user share update for the legacy as a legacy path. It also is also a name for metadata that's shipped by distributions, which is an XML file which actually aggregates all the stuff that AppStream projects ship in terms of metadata. Additionally, it also includes some things distributions know about, for example, package names or information that was extracted from desktop files or anything. It also contains a set of PNG icons in case you want to build an application center and provide icons for this. So which metadata do we actually provide? The first thing AppStream does is to separate the different software we have in a distribution into a set of components. There are a few component types, which are mainly the component type generic, which can be used to describe any software. The component type desktop, which is for GUI applications, then of course firmware if you want to have metadata for firmware and fonts, codecs, input methods, add-ons which extend other metadata or other components. This is what we currently separate our software in the archive into. There are a few ideas for more categories, but I will come to that later. AppStream also provides a unique identifier for every software we have, which is set by the AppStream project. So a unique identifier means that there's one tag the application is associated with which can be used across all the distributions. So if there's one RKDE-Gwenview.desk identifier, we can refer to it as this on Fedora, Debian, Arch and whatever the software is running on. This can ideally be used, for example, quickly check if software has security issues because you can check which version do I have of this software with this particular name and then have a reference list with those names and check if there's anything wrong with it or just refer to it or just have a button which you can install it for. It's basically an equivalent of a package name by distribution agnostic. The metadata also includes a name, summary, description, URLs, categories, keywords, screenshots, icons, etc., so anything you can think of which helps the user to make an informed decision on whether they want to install this application or not, or which helps the system to determine whether the user might want this application. For example, it also includes supported mime times, mod aliases, binaries, libraries, etc., which can help to guide the user to installing an application. For example, if the user has some new file type which he can't open, the system can suggest a set of applications which might be used for opening that file. This is how it looks like in the upstream metadata, so this would be a file that upstream projects ship. I think I can skip this. It contains every along description, the ID, the short summary, etc., and all of this can be translated upstream which helps us a lot because we do not need to translate stuff downstream anymore, so the translation work is done once and in the upstream project and we, as Debian, don't need to do initial translation work because upstream has done it for us. So this is an architecture overview, it's slightly dated, but still useful to understand how this works. In Debian, we have a compose server which is the thing which creates the final metadata which we ship to the user. That one takes the data, the upstream project ships, enhances it with things we already know, for example, desktop file, data or package config information, and then creates, assembles a huge XML file or in Debian's case, a huge demo file which gets transferred to the user system where it then is used for example for software centers which are primarily the primary users of upstream metadata today. So a few examples what you can do with upstream, you can, for example, check what applications provide a certain modellia handler, so for this one in particular you have a Pymissal which can make use of this device, then you can search, have a full text search, you can even use it to install applications by their ID instead of referring to a package name. So who uses this in Debian? Those are mainly the software centers which I know software Plasma Discover and elementary sub-center, but also a few more so I couldn't just include them all, but those are like the main ones that I know about. Then there's a tool called Isancram which suggests packages to install when inserting new hardware, which is really nice to browse the archive to see what software could I use to get the most of my hardware. A Flatpak and Limba are software bundling solutions which also make use of this metadata as like their primary format to get information about applications and to enhance the data we have for software centers. So they can decide do I want this stuff installed from a distribution package or do I want this stuff installed from a Flatpak bundle, for example. Firmware Update is a service which installs flash firmware on devices which is a very interesting topic, but it would be a talk on its own. So I will just mention it in here. And also obviously the distributions currently at least those mentioned below are fully supporting AppStream. There might be more, but I think at least McGeyer is investigating it, but I'm not sure if they are already implementing it. So what do we do at Debian? We use a general representation of the distributed data. Initially this was supposed to be XML, but our FTP masters don't like it. So we use Jammel now as the main format for this. Yeah, and as you might remember in the last talk at the last Debcon, this was still not happening. It was just an idea that we might ship this at Debian. Now we do, as you can see, if when you open GNOME software and it has organized metadata. So what we did was deploy a tool called Debian Generator on AppStream.Debian.org which extracts the metadata from packages on an external machine and then sends it over to the FTP masters which included into the archive. And then we also use a new feature of the app packaging tool to make it automatically download this data for us and have AppStream CLI put it in the right places and build caches for it. So then after we deployed Debian Generator, we already made Ubuntu use it. We decided to replace it again to not to annoy Ubuntu, but because we found some really severe limitations in the Debian Generator, which is mainly bad performance. There were a lot of Python 3 multiprocessing issues which weren't not only because of Python weirdness, but because the libraries and tools we were using weren't really designed for a multiprocessing case. If we relied on contents.jsat, which is bad because we had one case where the contents file wasn't updated properly at Debian, so a lot of stuff wasn't extracted at the AppStream Generator, and it was even worse for Ubuntu which only generates this daily or weekly. So for example, if stuff moves icon around, we didn't have enough data for it. So also it was Debian specific, which was a deliberate design decision at the beginning, but in the end, yeah, it was obvious that it didn't need to be Debian specific, so we thought about making it more broad and allowing other distributions to use that thing because it was really useful for other distros as well. Also there were some very bad design choices in there which made implementing features which Ubuntu needed, but which we didn't want to Debian really hard. So rewriting it was basically a quintessence of working together with Ubuntu to get it into their infrastructure. There was also code duplication with the AppStream, which was initially intentional, but it's much more maintainable if there's one implementation or well actually two implementations which is written wide AppStream metadata rather than having to maintain another implementation in Python to do that the same task. So the replacement is now called simply AppStream Generator. It's a completely right, it's distribution agnostic. It's very fast compared to what we had before. It can read depth files directly and doesn't rely on the contents file anymore to get the file contents. And yeah, it's written in D which is kind of obscure, but for this tool it was the right choice. So going on to AppStream.dev.org and these are the current statistics on metadata we have in the archive. The red things are errors. And yeah, the green is valid data. One thing you need to know when looking at these graphs is that one package might contain multiple metadata or multiple valid metadata components and also might emit multiple errors. So this is an accurate mapping of packages to errors. But yeah, as you can see, there's still a lot of work to do, there are many errors and any error that's found there could be a successful component extraction and all those warnings are usually old metadata which needs to be updated to a new format or there was a failure to download some screenshot from AppStream. So these are also things which would need to be fixed in packages and it's also something that we can not really do anything about on the AppStream generator side. If you look at the evolution of the metadata this looks quite poor but if you include because it's only from the point in time when we started to use AppStream generator on AppStream.dev.org but if you include the data that the Dev11 generator had we see a linear growth of valid metadata but it has a very, very, very, very small slope so there could be much, much better, much bigger growth in valid data. This bump you see there is when the counting has changed of errors and warnings so this is unfortunately not people uploading lots of valid data to the archive. So which brings me to future plans. We, I have for ideas, I have for this project and the AppStream generator in particular. One of these is to fill in the provides type that provides entry for libraries and binaries and Python modules automatically. One reason for that is that tools like PIP for example could automatically download the Debian package if there's an equivalent version in the archive instead of using the bundled version but for this it will blow up the data, it will be much more metadata we produce for this so we first need to check if it's really worth it and if it would be used by the respective tools. There are also some ideas to include all the binaries we have in the archive in order to get rid of the command not found stuff downloading all the contents information and extracting the binaries out of it but this is something that needs to be evaluated in future. Yeah, font metadata is something I'm working on which we don't support in Debian right now but Fedora does it. Fonts are really hard because there is work needed from the font package maintainers who really need to include a meta-info file especially because the data which is in the font files itself is almost unusable for a nice presentation to use this so but yeah as soon as support landed in an upstream generator I will reach out to the font people and ask them to include metadata. Yeah, this is one controversial entry. It might be useful to provide the metadata that is currently in contraband non-free in main so if the user inserts a new device which requires proprietary firmware the system can ask hey this device could work better if we had this firmware but you need to enable non-free for that, do you want to do it? This is currently not possible because the system will simply not know that there's something in non-free which could help so yeah this is an idea to work around this problem but on the other hand of course we would have like a very visible reference to non-free in the main archive which might not be desirable for a project like Debian. Yeah, obviously one of the biggest things which needs to be done is to show those errors and warnings on tracker.debian.org in order to increase the visibility of metadata issues. There's currently a patch for it and I'm working on to make it merge ready for the package tracker maintenance. Yeah, obviously there are a few issues in the metadata which I'm not catched, I'm not caught and we could also do some stricter validation but this will only follow when we have a substantial amount of data already in the archive. Multi-Arc support is something which is mainly useful for Ubuntu and for Skype. So if you have Skype in an archive which is not in an architecture which is not your main architecture and you will not have metadata for it so yeah, adding support in AppStream for that is a bit tricky but it will be done. Yeah, also splitting metadata up into GUI non-GUI parts might be useful for servers because there apparently are people who want it on systems which do not have a GUI front end and don't have an application store mainly for which library is in which packet or for command line applications. So this might be useful to achieve smaller download sizes. Yeah, also creating binary disks for the icon table is in the same area of work in order to reduce the download size. There's a bug report for this but it's a very hard problem to solve so I'm not sure if we can do it or if you should do it. Yeah, a mechanism to replace bad screenshots is for example, if someone uploads pornography and we download it into Debian, we want to replace it or if someone uploads a screenshot which contains copyrighted material we do not or cannot ship it with Debian and display it there. So we need the mechanism to easily replace bad screenshots. I'm working on this, this will happen soon. So this is my favorite slide, what can you do? The main thing is write meta info files and submit them upstream because that's where they belong to. Also fix all the issues highlighted on aftim.debian.org. So ideally at this DefCon go to the page, go through the issues pages and see if your packages are affected by some problems and if you don't know why some issue is shown there please talk to me and if you think it's a back in aftim generator please report it back for it. So obviously patches are welcome, back reports are also welcome and there are instructions on how to properly package and create metadata on the wiki. So that was it, are there, this is the page how it looks like but yeah, are there any questions? So we have three minutes for questions. About 15 or 20 years ago there was something called an LSM file which had a format or the meta information for package. Have you considered parsing it or reviving it or just extending it? I must admit that I've never heard of that. It was actually reasonably popular. I think software map had even like some searching functionality and if you look around in the very old archives you'll see most, well many targz files also have a .lsm file. So it might be something to maybe extend. Okay, if there are still packages in the archive which provide these LSM files we can definitely think about parsing them in the upstream generator and producing the final XML out of them. Cool. So for a user to make an informed choice he often wants to know what license the package is under. Have you considered including licensing information in the upstream file? Yeah, it's not mandatory but it's even a recommended tag to add licensing information. We use the SPDX licensing tags for that so it's machine readable as well and so far I think almost all projects use it. I need to check if the staffs if there are some meta info files. Do you think we could generate Debian copyright from that or do you think it would make sense to do that? I don't think so because it's not as fine grained. In the meta info files you have for example LGPL and GPL for the whole project or for this whole software component and the Debian copyright file is down to the file level in terms of information about licenses and that's maybe a bit too much for most users. Oh no. Like, easy question. We've started a little initiative in Ubuntu to try and increase the coverage of AppStream in the archive because as you know, we added AppStream with our 1604 LTS release. So people found it hard on both sides so Contribute has found it hard to understand exactly what they had to do. So I guess that's a question of documentation but also sponsors found it hard to know if the package that they built was actually going to be accepted by the generator in the end, right? So I'm wondering if you have any ideas about how people can go about testing that or if maybe it's possible to make a submission service so that you can see if your thing is good or bad or make it possible to run the generator in a mode that just takes one Debian and tells you if it's gonna work with the archive or something like that. Yeah, ideas or thoughts about maybe what we could do there to make it easier for sponsors and for new comers to come and work on this stuff because it seems like it would be a nice initiative for new people to work on maybe but it's also not so easy to come in and start working on it. At least for the AppStream metadata files, you can find AppStream CLI validate on it and then it checks for formal errors in this format or AppStream Util validate as well and yeah, for this, the most issues in the archive exist because there are XBM icons or missing icons for something. This is a bit harder to check. Currently, there exists no easy tool for it. You can of course fire AppStream generator edit but that's a bit of an overkill. So yeah, I think it might be useful to provide the service and to provide an easy tool for this. So you generate AppStream from desktop files most of the time and these are the things that people are working on. So it wasn't actually stuff with meta info files. It was typically like something which doesn't come with a good enough icon or something like that. So I know you have guidelines as to like where you want to put them and like where they should end up and what format they should be in but it was just like, how do I test if this depth that I've made is actually going to be accepted at the end of the day? Yeah, there are instructions on the wiki which are, I hope detailed enough but we should expand them if there are problems. Thank you very much. We are out of time. So thanks again.