guys and welcome back to another Python tutorial. So in today's video we're going to be looking at scraping a Spotify a Shopify website using Python. I don't know why I said Spotify but oh well. So what we're going to be doing first of all is we're going to be opening up command prompt to make sure that we have all the required modules installed. So what we're going to need first off is we're going to need a module called pandas which is going to help us nicely take our data that we scraped from the website and then put it into a nice table and then save it to a CSV. So we're going to do pip install pandas. Once you're done with that you want to do pip install requests. The quest is going to let us make get requests and grab data from the sites we want to scrape and then lastly you want to do pip install bs4. bs4 just stands for beautiful soup4 and it basically lets you convert a code from a website which comes in as a string into valid HTML that can be served through. So once you've got the three packages installed which are beautiful soup4 requests and pandas we are good to start coding. So the website we're going to be scraping today is one of the top 10 websites that shows up on Spotify as the sort of inspiring list and since most websites created on Shopify not Spotify are e-commerce based we won't be going to be doing is we're going to be scraping the items from the websites and their prices and then saving it as a CSV file. So to begin with what I'm going to do is grab the URL right here which is to a website that was created in Shopify called partakefoods and I've got it open right here already but I'm going to reload it and what you'll notice is the website has a nice little layout and it's about cookies and stuff. So what we essentially want to do is go on to the page that has all the items you want to scrape and I've done some research beforehand and find out that this is the URL and this is the page that has all the items that they sell. Now what we want to do in here is essentially scrape the title of the item and scrape the price of that item and then essentially later on once we've downloaded all that data or scraped all that data we want to basically save that to a CSV. Now the most important thing right here to do is understand how the website was created or what the layout of the website is. So for that we're going to use the developer tools or the inspect so what you want to do is you want to basically select one of oops you want to basically select just one of these little items because those are the items we want to scrape. This whole thing is the container that we want to scrape and inside that is the title and the price so we only want to keep that data. So I'm going to click on inspect right here and then what you notice is when you hover on the different elements it will show you what you're hovering over on the screen as well. So we want to look for the entire sort of div. Div is a container but that's what they call it in HTML it's a div and essentially we want to look for what the class of that div is. So class is like a reference or like giving a div a variable name sort of like that like a reference. So we only want to grab divs that have the class C-O-L-S-M-6 blah blah blah. Now I'm going to copy this right here the class name that I have and I'm going to do a control F to actually look for all the divs on the page with that class name. Now if I run this we'll notice that it help us over essentially all the items that we want to scrape on this website. So that's the div that we want to scrape because it basically covers all the items on the page. All the divs essentially share the same class name. So we want to scrape that div which is why what we're going to do is copy this link to the other class name right here but before we copy that what you want to do is we want to actually grab the code and make a get request to this website to grab the HTML code of it. So we're going to copy the URL partecfoods.comcollectionsall and go on to our Jupiter notebook and then first off we're going to do all our imports. So we're going to do import pandas as pd we're going to do import requests as r oops and then we're going to do import actually we're going to do from bs4 which is beautiful soup for import beautiful soup with capital B and a capital S. Now that we're done with the imports what we're going to do is create a new variable called request what we're going to call it request one and that's going to be equal to r which stands for the request module that we just imported and we're going to use the dot gets method to basically get the HTML code as a string format from the website partecfoods.com collections all because that will return the webpage code for this page right here which has all the items and prices we're looking for. So I'm going to go ahead and run that and if I print my variable request one what we'll notice is it says response 200 which means response okay so the website returned the data we wanted to and the get request that we made perfect so if I do request one dot text we'll also be able to see all the all the html code for the website we just got in a text slash string format so if I run that you'll see a bunch of gibberish but it's because it's in a string format but you'll see things like follow partecfoods on Pinterest so it's actually the content from this webpage right here because we did a get request for that URL. Now we can't really physically go ahead and look for the prices and the title for each product individually so what we're going to do is we're going to use beautiful soup to convert this text into a navigatable sort of html code that we can navigate through and find specific tags with specific class names or or IDs so to do that we're going to create new variable called soup and then we're going to equals that to beautiful soup which is the class we imported and then we are going to pass in the request which has all the code that we need as a string format so request one dot text and then comma html dot parser is the parser we're going to use to basically convert this string into navigatable sort of html now if we run this soup variable right here will allow us now to use methods such as find and find all so find all and find basically let us find elements within the html code based on the type of tag they are and the class name if you will so let's go ahead and look for the class name and the tag that we're actually looking for so first off what we want to do is we know that the tag we're looking for is div because the div contains all the information that we need and we also know what the class name for that div is because it's shared by all those divs so we're going to copy the class name and we're going to remember just let's just see again just copy this class name right here and we're going to remember that it's a tag type div okay so let's go back to our code and we're going to do soup dot find we're going to do find all because we want to find all the divs on the page with that class name not just one because find just returns the first item on that page with that with that tag and that class name but we want to actually find all so we're going to do div because we want to find all the divs on that page with the class name so class underscore equals two and you want to paste the class name you copy it now by default it comes in with the space for some reason so you want to get rid of that and then what you're going to notice now is if I run this right now it basically returns a list of all the oops a list of all the divs that we have extracted from our webpage so the first div for example it seems kind of cut off maybe it's because i'm printing a lot of stuff at the same time so let's just assign this to a variable which we're going to be calling products so since it's a list of all the divs that contain the product information let's call this product run this again and of course we won't see anything because we're not printing now if i do products since it's a list we can use the reference or the index to only print the first item so let's only print the first item from the product's list and that will be the first div that we scrape so that's the first div that's showing up right now and what we're looking for right now is the title of the item now if you look closely you'll notice that the title of the item is right here says crunchy variety pack five boxes and then if you notice the next line is actually the price now what we want to do is we want to find out what the tag is where the where the title is located and whether it has a class or not so now i've noticed that the the the tag that's being used is h4 and within it they also have another anchor tag but we don't want the anchor tag we will use the h4 tag because that's where our title is so we can do a dot find because there's only one h4 in here and we only know we know that there's only really going to be one title that we want to scrape we don't want to scrape multiple titles from one div from one div we want only one title so we're going to do product zero dot find and then as i said we're going to find the h4 run that and you notice that it only returns the h4 from the product zero so it's only looking at the first div that we scraped in this product list so in here we notice that it's also got the anchor tag which we don't want we only essentially want the readable text which is the title which is why we can use the dot text attributes and then run again to only get the text or human readable text as a string so now that we've done this once we can actually repeat this process in a loop so let's quickly go ahead and write a loop to do just that so we'll do four product in products which means product is going to be referring to each item of the product list which is each div we're going to do a new variable called product name and that's going to be equals to product which is a div in each individual div from the list dot find h4 dot oops dot text so essentially we've done the same thing that we did down here which we just did it once but now we're going to do it with all the all the divs so if i print product name for each product we should essentially get uh voila we essentially get all the titles that we scraped from the list so all the product titles from the divs that we had in the product list so all the titles are here perfect now we also want to store the price which is why we need to find out a way to find the price so the same sort of methodology again we look at the first item in the list and then let's look for the price so let's see we found it earlier on so it's right here below the title and we noticed that it's inside a span tag which also has a class so we can use exactly just that to do a find so remember that the tag we're looking for is a span and the class it has is called regular price so let's copy the class name and we'll create a new variable but before that let's just experiment here we'll do dot find so in the first item we're going to dot find a span because that's the tag and then we know that the class is actually equal to regular price run that and we get exactly the span we're looking for but we also get the html code we don't want that so we're going to do dot text to only keep the text out of it and perfect we get the text right here you notice that we have a dollar sign in there which we don't really want we only want the raw number so we'll do something to get rid of the dollar sign in a moment as well so we're going to do a new variable called product price and we're assigned we're going to assign that to each product in the product list dot find span where the class is going to be equal to regular plot price so basically we're just copying and pasting what we did for one product to essentially run for all the products and we're also assigning it to a variable called product price now as i said before it has a dollar sign in it so we want to get rid of that dollar sign so i'm going to do product price equals product price dot replace now what do we want to replace we want to replace a string dollar sign and we want to replace that with essentially nothing so now if i go ahead and print my product uh prices i should get them without the dollar sign so let's run this and we get it without the dollar sign but what we notice is some of the prices have a from text inside them we don't really want that so we are also going to replace the from text with nothing so up here where we did the first replace we're going to go ahead and do dot replace from with the capital M and then replace that with nothing we also notice that it might have an additional space leading or trailing so we're going to do dot strip to get rid of any leading or trailing spaces so essentially now when i run this you will notice that it's overwritten the initial product price got rid of the dollar sign from and any additional spaces and it's only printing the float version of the normal numbers for the price which is perfect now what we are going to do next is essentially save the product name and product price for each product inside a list um and we're going to save it in a dictionary format so let's create the list where it's going to be saved so we're going to do product underscore list is equal to an empty list the reason why we're not doing it inside the loop is because each time the loop runs it will make it an empty list and we'll end up with just one product so that's why we initialize it outside the loop and then we're going to write the product price and the product name onto this product list so we're going to do product underscore list dot append now dot append will basically just add the item onto the list at the end so we're going to do product list dot append and as a dictionary we're going to do name as a key and product name as a value comma to add another key value so i'm going to do price as a key and product price as a value now if you guys are not familiar with how dictionaries work or need a quick revision i'll link a tutorial in the description so make sure to go watch that and then you can come back to this but once we're done with uh basically appending everything to the list what i'm going to do here outside the loop is i'm going to print let's run this first nothing will show up because i'm not printing anything we'll get rid of this and i'm going to print product list just to show you what it looks like and here we are so the product list has dictionaries inside it each dictionary has a key and price key and each value for those keys is different because obviously we are going through each item and saving the price and uh name for each item separately so we essentially have what we need right here now the last last step to this would be taking this list with dictionaries converting it into a nice pandas table or pandas data frame as they call it and then saving it as a csv file so let's do that create a new variable called df which stands for data frame and then we'll assign that to pd which is pandas the module we imported as pd import pandas as pd up here dot data frame because that's the method we're going to use make sure that d and f is capital otherwise you're going to have errors the first argument or the only argument we need in here is the list which has all the data that wants to be that we want to convert to a table or a pandas data frame so of course we know it's called a products list and now what i'm going to do is run this real quick and let's print out df to see what it looks like and voila as i said it's going to turn out as the data frame is nothing more than basically a nice looking table with columns and rows where the data is organized nicely right so we can see that the row zero is crunchy variety pack five boxes for the price of 24.99 cool so now that we have everything nicely inside a data frame maybe we may want to save this onto a hard drive as a file right maybe like a csv file so we can reference it in the future so pandas allows us to also do that but because when we convert something to a data frame we have certain functionalities that are available to us so we can do df.2 underscore csv and that will save whatever is in the data frame as a csv so we need to give it a name let's say tutorial scrape.csv make sure you add the .csv extension in the end otherwise the file format won't be recognized by a computer and then you do .index is equal to force because otherwise what will end up happening is you will also have a new column in your csv files with all the index numbers which is a bit annoying so i'm going to run this cell that saves the file and then i'm going to look on my computer that's for a file that says tutorial scrapes.csv and it's actually showed up on the right time so let's open it up give it a second and voila as you see we have a column called name column called price name has literally all the items on the website and price has all the prices to those items linked to it as well so let's close this file i hope you guys have enjoyed today's tutorial um as promised last time i'm trying to push out at least one video per month so i hope this tutorial has been useful you can use the same methodology to scrape sort of other stuff from other websites because most of them have similar structures and you'll be using this technique quite often if you're trying to scrape stuff from websites if you guys would like to see more stuff related to scraping or using pandas please leave that in the comment section other than that other than that please make sure to like comment subscribe share because sharing really helps the channel out and guys i'll see you beautiful faces in the next tutorial peace


Our business pure flow it was started because there was a need in town for gutter cleaning especially after the recent bushfires in Malacuta We heard that there was support for business recovery and then we were put on to our advisor What we focus on as advisors is Active quarterly business plans that help business owners get things done and get results in their business Our advisor has been absolutely amazing actually Coming from a paramedic background having a career change moving down to Malacuta being in a whole different setting Phil is that really solid backbone that I can go to A lot of the things that he talks about we have actually made part of our business and that's how our business runs We're local advisors Working through to find out what the business owner wants to achieve and what's a good way to get there Even just finding a path through and having someone to talk to has been massive thing Our advisor has helped us in many areas from quality of work to Keeping relationships with customers just running our business a lot more efficiently got more leads We've got more customers more money coming in our business is in a really great space at the moment We feel established and ready to grow ready to bring employees on and venture out into different areas It feels like a whole weight lifted off your shoulder when you have an advisor there that you can call anytime I would absolutely recommend the business recovery advisory service for any business owner It's an opportunity that you just can't pass up having that support there whenever you need it. It's really helpful


Breaking news, Baltimore Ravens player gets fired and then the very next day, he gets his job back, team keeping clean, how y'all doing? Y'all enjoy that Baltimore Ravens open practice? I hope y'all did. Shout out to any of y'all that were out there. I hope y'all had a really, really, not a good time, but I hope y'all had a great time. Hope the Ravens put on a show for y'all and I hope y'all enjoyed yourselves, you and your family and your friends and everybody who was out there. Anyway, Baltimore Ravens, who stay busy, they like now is a season where they ain't taking no days off. They are taking absolutely no days off because they always got something going on. Trayvon Mullen, Lamar Jackson's cousin. Yesterday, he was let go. He was released and they put it as a, he failed to designate his injury to the team or something like that. He didn't let them know what was going on with some injury. That's the designation that they gave the transaction and I was thinking, all right, with Trayvon Mullen, this is a missed opportunity because that's third, fourth, even fifth. Really, every cornerback spot outside of Marlon Humphrey and Rock Your Scene and even Cal, well, depending on what they do with Cal Hamilton is here, but every cornerback spot after those two, it's up for grabs in my opinion. It ain't no person where it's like, all right, that's gonna be the guy for the job. You may have some people who you think may be the right guy for the job. You may, there may be some people that got a little bit of a leg up or whatnot, but right now the Ravens do not have a clear cut guy for their cornerback spot. Their cornerback spots are literally all over the place right now. After Marlon Humphrey and Rock Your Scene, so I'm like, man, Trayvon Mullen got cut, missed an opportunity, but nope. Maybe nepotism is still alive. Maybe it is because we see it with coaching staffs and whatnot, not just with the Ravens, just really around the league. One thing that I also noticed too, and there's kind of a little sidetrack, but it happens really, it happens everywhere because I remember I was looking at, oh, Guardians of the Galaxy. Watching Guardians of the Galaxy and then we watching the little bonus features and whatnot and the director, I think is James Gunn, I believe, but he had his brother, his brother had like multiple roles in a movie and then there was some other people that he worked with from other movies in Guardians of the Galaxy. But then he did some other movies too and when you look at his history of movies, he works with a lot of the same people. So again, with nepotism, not even just nepotism, but just putting people on that you know, it happens a lot, literally everywhere, but anyway, that was besides the point. But Lamar Jackson's cousin, who knows if that had got anything to do with anything, but Trayvon Mullen is officially back with the Baltimore Ravens. They re-signed him today, like so they just brought him back. It's like the transaction seemed like it ain't even clear from yesterday officially yet, but they brought him right back today. So he is right back in the mix at cornerback. Hopefully he's healthy. I don't know the status of his health, but hopefully he's healthy and he'll be great to go. Not good to go, but great to go. Cause has that ever happened to y'all before? Where you get fired from a job and literally the next, the very next day, you get that same job back? They ain't never happened to me before. I've got five of my job, they'll hit me back, man. They say, oh, we got ready? Okay, he's going, all right, that's it. That's a wrap, but that's okay. Cause again, things eventually worked out in the long run. So I appreciate every single job that I've ever been fired from, that I've been laid off from, cause that was a big one right there.  I made some dumb decisions in the past, but again, in the long run, everything ended up working out, which I'm very, very grateful for. But anyway, beside the point again. So James and Hensley also let us know something that is very, very big and important information to know because this literally changes everything. It changes everything when it comes to the Ravens running back situation. They signed Melvin Gordon. They signed Melvin Gordon to a one year, $3.1 million deal. And we talked about when they first signed him before the details of the deal came out, we talked about how this deal would be heavy with incentives. I ain't know what's gonna be this heavy with incentives because we figured like, hey, the guarantee money on the deal is gonna be low. It's gonna be low and it ain't gonna be much, but most of the money that is on there is gonna be a lot of incentives for him to possibly earn that $3.1 million. It will be hard, but the incentives will be crazy. But James and Hensley cleared all that up cause he said just a clarification on running back Melvin Gordon's deal with the Ravens. It's one year worth 1.165 million. There is no guaranteed money. So Melvin Gordon is officially not a lock to make the roster. He's not a lock. He is not guaranteed to have a roster spot. I'm not sure where the $3.1 million deal came from. Who knows, but James and Hensley are saying it's a one year deal worth 1.165 million, no guaranteed money. So this is a Ravens play. This one's super safe. They played it extra. I'm like, okay, they signed it to a $3.1 million deal. And yesterday it came out that it was like 1.165 million in guarantees, but no, it's not. So I was even thinking, okay, that's not bad. Like stay ready so you ain't gotta get ready. You got J.K. Dobbins there. He's on the public list right now. You got Gus Edwards getting back in shape and whatnot. You got Justice Hill, Keith Mitchell. You throw Melvin Gordon in there. Okay, you got another veteran too. So, and I was thinking, okay, with the way that it was structured. Oh yeah, he gonna make the team. But now this, no, he ain't safe. He really ain't safe. But it does give the Ravens an insurance policy and a nice insurance policy. And an insurance policy where it's like, okay, this is not a bunch of money. So this makes the deal look even better for the Raven side. It makes them, the deal look even better for the business side of the Baltimore Ravens for Melvin Gordon. It's tough because if you don't have a guaranteed deal, especially around this time of the year, especially at the running back position. Ooh, because what the Ravens could do, they could finagle this thing. Because, well, it's already not guaranteed. So I guess it really doesn't matter. But if you are on the week one roster, then it's something where your salary becomes guaranteed for the year, I believe. It's something like that. You may not get it all at once, but it becomes guaranteed for the year, I believe. But then if a team signs you any time after week one, then you are week to week. Your salary is not guaranteed. They could have you on. Say for instance, they sign you to a one-year deal after week one. Sign you to a one-year, five-million dollar deal, just using this as an example. And you play two weeks. You will get two weeks worth of whatever that five meal. And they sign you for two weeks and then they cut you. You're not gonna get the four or five meal since you were signed after week one because it's not guaranteed. You'll get the two weeks worth that you played and that you're on a team, but you will not get anything past that. So yeah, man, so let's see, we'll see. We'll see how this thing goes. But anyway, I just wanted to update y'all on that since that news came through and some pretty significant updates for some depth guys on the team. But we'll see how it goes. Anyway, team keeping clean. Y'all are great. Y'all are beautiful. Y'all are wonderful people. I really appreciate everything that y'all do. Thank you all for watching the video with me and my guy BeZee earlier and letting y'all thoughts be known in the comments section about what you would or who you even would possibly trade for Chase Young. A lot of mixed reviews on that one. So some people like, why would you trade anything for Chase Young? He been hurt so much. I saw my guy free and D with the context, which is important. The thing he said, Chase Young got like a career of, he got nine sacks in his career, but if I feel like we got like eight. So that's something to look at to like, hey, they like right there, same as sacks. But Chase Young missed a lot of time, but I feel like it hasn't. But even still, man. So again, with that trade, just to go back on that trade scenario, a lot of people was talking about PQ. That was a big part of it. And yeah, I just, I would not trade Patrick Queen for Chase Young. To me, I don't think it's worth it. I understand what Chase Young could possibly bring to the Baltimore Ravens, but I also understand what Patrick Queen does bring to the Baltimore Ravens and what he has brought to the Baltimore Ravens. See, with something like that, and we about to get out of here in a second, but with something like that, with Patrick Queen, again, availability, he's there. He is always there, suited up every single week, every single game, he don't miss time. He has been very, very healthy, and that's been a beautiful thing for his career, cause he's been healthy throughout his entire career so far, which is three years. So that's amazing. Yeah, 2020, 2021, 2020, yeah, three years. And a lot of players, young, old, they can't say that. Patrick Queen can say that right now, though. And again, like I said before too, this year, like though he's set up to just do really nice, man. He set up to do really nice. And I know Raven's past rush is like, when you think about it, it's like, well, it's more so unknown. It's a lot of unknowns there. Daphiel Wage, is he gonna turn the corner this year? We'll see. David Ajaubo, how's he gonna be in the NFL? A lot of people like, I know my God, Michael Grant, he been sending me messages saying, hey, David Ajaubo, he plays like LT. I've been telling, because he talked about how David Ajaubo, when he goes for the set, when he sacks somebody, he try to knock that ball out too. And I say, I say LT now, LT, okay, I wouldn't be mad, but LT look, ooh, that's some high praise right there. But then my guy JT just said the same thing too. I said, whoa, okay, now, LT, okay.  Well, I'm with whatever, man, well, whatever he does good. So yeah, man, we're gonna see about David Ajaubo this year. We keep hearing all this good stuff about him. But yeah, when them pads come on, not training camp, but when the pads in the jerseys and they playing in the real games, we gonna see, man. I'm looking forward to it though, man, it should be fun. They get their first real test, who against the Texans, right? That's who we play with one, I believe. So yeah, we gonna see, man. But yeah, Pats Rush is a big question mark right now. Brought in Kyle Van Noy. He saw Ty as Bowser, he status still up in the air right now. So we'll see what's up with him. But yeah, so a lot going on as usual with the Baltimore Ravens. But I appreciate y'all's support in the channel. I appreciate y'all getting a lot of your update, cause I know you get your updates from a lot of different people, which I appreciate, cause shout out to all of them cause y'all got some phenomenal options when it comes to getting your news about the Baltimore Ravens. Y'all have a lot, a plethora of different channels you can go to to get updates and all that stuff. And I'll be looking at the other videos. I look at videos from all my guys, man. All my guys, girls too, who do the Raven stuff too. They may be joining in with some of the guys sometimes or whatnot. But I look at all that stuff, man. And I appreciate that everybody usually put their own spin on stuff. And that's what makes it so fun. So shout out to all the Ravens channels out there. Everybody, man. I love y'all. I appreciate y'all team keeping clean so much. Thank you for everything that y'all do. Thank you for not only supporting us, but thank you for supporting all of them as well, man. Cause that's what makes a big difference, man. Y'all are good people.  Y'all just stay hydrated too, cause it's hot out here. I love y'all and like Trayvon Mullen is no longer. When it comes to being one of the Baltimore Ravens, we out.


So when do you use B-Flex and when do you use B-Strong? Who needs which one? Well, let's start with B-Flex. B-Flex is a very flexible gel, it's very lightweight, and it is designed specifically to bend with the natural nail. You will apply this on clients who are not used to gel nails, clients who have very flexible but also very short nails and who want to keep this elasticity because it's what they're familiar with. For clients who have a more active profession like they're working in a restaurant, they have their hands in the water a lot and they bump their nails a lot, they will need a stronger gel. Or clients who have a longer nail or maybe also want to have a nail extension, they will need B-Strong. So your typical gel client, you will use B-Strong and for people who have never had gel before and who want to keep this natural feeling, you can use B-Flex on the condition that the nails are short. Then we have the category in the middle, the soap polish clients, the semi-permanent clients. These are also clients who are used to the feeling of their natural nails, so these clients would also be suitable clients for B-Flex.


I hear a band coming down the crunch here where I got to talk to you a little bit to get some guidance with some of our friends last night. I think all of those, what you've got to do is, as nearly as you're one of these guys trying to influence you know, I'm not. Please do that as long as I live, because I'll try to be as good as you've been to me. The one thing I do is look at what I got as vice president and see where you're going to get it. Now, I just can't improve on that. That's not sentiment. That's not emotion. That's just true. You want lots of energy and go-go. You want lots of articulateness. You want a guy that when the boss doesn't know where they can come in on that he can have his speech and laugh and thank him for coming. You want a guy that got to go down and look at the swamps. The boss can't go that he'll love to do it and be happy, even though it just cuts his toenails off. Somebody's got to do that. Now, you've done it all along. You've got to say, have somebody that had not a coward that went to go and get stuff and everything gets rough and well within a year. You've got to have somebody that will just get in a little bit closer and stay a little bit longer. You've got to have a wife like yours. You've got to have a family like yours. You've got to have somebody as near as that. Now, that's the best dimensions I know. Who fits that? I just really honestly don't know. I know a good many that don't fit it. You don't want another lodge campaign. You don't want another garner. You don't want another Wallace and you just cannot tell what all is gold. All is not gold and glitter. If I had one thing back, I'd appoint everybody like I appointed you vice president. If I had done that, I'd start over new. I'd do it now. So that's what I want you to be careful about. And this thing loyalty, Hubert, does not many have been gutted. I know that. And the vice presidency is an impossible job. No human being ought to be required to endure it for years.


Its World Breastfeeding Week will look at the significance and aim of this global observance spearheaded by the World Alliance for Breastfeeding Action, the World Health Organization and UNICEF, amongst others. We're privatizing Nigeria's public hospitals with a solution to the issues in its health system. The Nigerian Medical Association says so. Its national president joins us this morning on breakfast to talk about this. And of course we have in-depth analysis on the headlines contained in today's national dailies in the press. Good morning to you. It's a brand new edition of the breakfast. A beautiful Tuesday morning reaching in life. I'm with Studios on Victoria Island. My name is Kofi Bartels. Let's dive straight into the action right here on the program where I look at the top training stories that we have for you. We have three in particular. I must have been monitoring the conversations on the social space. The first one up, Bello Yabbo praying for the abduction of President Mohammed Buhari, a governor of Kaduna State, Al-Rufa, as well as the presidential aide, Agarba Shehu. Who is Bello Yabbo? I mean, the name has been going around with lots of responses and reactions to this. He happens to be an Islamic cleric. Now, of course, he is a Sukkota-based Islamic cleric and he prayed for the abduction of President Buhari, like we said earlier. Now, if you remember, some terrorists had, quote, kidnapped the passengers on that Kaduna-bound train, released a video last week showing them metting out corporal punishment on victims and also threatening to kidnap the president of Nigeria, the governor of Kaduna State, as you can see on your screen as well. Now, also they also threatened to kidnap some of the Nigerian lawmakers if they did not comply with their, the terrorists, demands. And of course, in response to this video, presidential spokesman, Agarba Shehu had said that the terrorist activity using propaganda and the use of violence to force governments to accept or submit to political demands is not new all over the world. That is what he said. But the cleric was responding to the statement by Agarba Shehu, who is seeing that in a picture with the president. He flayed the presidential spokesman for describing this terrorist or terrorist video as propaganda. He now went on to say, to accuse Agarba Shehu of being insensitive to the plight of captives by releasing such a statement and went on to pray that Agarba Shehu himself will fall into the hands of the kidnappers. So this is the point he's coming from. He thinks that Agarba Shehu, through his statement, by his statement in reaction to the terrorist threat to kidnap the president is being insensitive to the plight of the captives. Now he said, quote, this is what the cleric Yabbo said, quote, I pray they kidnap you, Agarba Shehu, and demonstrate as propaganda. These are his words, all right? But he appealed to terrorists to release the innocent victims in captivity but went on to wish the terrorist success in their threats to kidnap those, the threat, and this is quite bizarre. It's a bit ironical. Now these were his words, quote, we're praying for you, kidnappers may God grant you success in carrying out your threats to kidnap those people but please release the innocent people in captivity. If this were the kind of people you've been abducting all this while wouldn't have bothered ourselves, we would instead pray and bless you because they have become a disaster to us. This is what the clerical machine on your screen said. He said these are people who promised heaven and earth and now they have the opportunity but became incompetent. Take them to the bush and flog them instead of humiliating innocent citizens who are striving to make ends meet. The cleric goes on to say, and please make good your threats and we will support you with our prayers. He's visibly angry there. He was a starting supporter of the president before he became a cleric and this is sort of mirroring the sentiments and the views, the reactions seen in different parts of the north even from the bandits who were saying they wished they could lay their hands on the president. It shows that the long held view that Northern Nigeria is just supporting everything that the administration is doing is not really true. If you're looking at the price of gas or fuel, it's the same in the north as it is in the south. The inflation in the economy is the same in the south as it is in the north. If you're looking at the falling narrow, it's the same in the north as it is in the south. If you look at insecurity, it's more affecting more the north than the south. That's why you have a lot of refugees on the streets of Lagos from the northern part of the country. These are the issues.  In this matter, there's no brother here. They are angry. I mean, if you remember, it was a surprise to some when Northern Elders for one came out a year or two ago to criticize the president. So it's clear that it's gone beyond the issue of my brother or my brother, as I would say. It's not going to be a time of my brother. This time, people are saying, you know what, we want to talk to the issues. If it's affecting us, then it doesn't matter who is there, we will criticize and we will speak out. So I think it's a sarcastic one from the gentleman, cleric, who is saying, go ahead and kidnap those who have made like elective cover us, let go those who are struggling to make ends meet. Another problem will help you, will pray for you, will support you. We want to see you flog these people is what it's saying. And of course, this seems to be from the responses I've seen by some people, especially in social space, a popular view because the average man on the street in this country feels the government is his or her problem. You know, they feel that the president is the one responsible for all the problems in their lives. So, I mean, this view will fly. But especially on a serious note, though, you know, with the state of affairs, people wouldn't complain if anybody in government, no matter what office it is, is kidnapped. They'll say, yeah, at least you have a taste of medicine.  A number of persons online were happy and said, well, he deserves it because he's in government in a way. So people feel that, you know, those in government should have a taste of what, you know, the citizens are going through. So no surprises that he's received some support for his view. All right. Let's move on. The next one, of course, when it came out that I was having a meeting, let's call it a marathon meeting. We kept watching to see what was the statement will put out by the organization, especially on their social media accounts, which have become one of the means of mediums through which they communicate to the public. And indeed, they came out to announce this is the National Executive Council of the Academic Staff Union of Universities, Nigeria's university's lectures union, that a four-week extension to the ongoing strike will commence. They're commencing a four-week extension to the ongoing strike in public universities. Now, they made a statement shared in social media, but it was a statement, you know, released by the union, which read in part, quote, following the extensive deliberations and taking into cognizance governments passed failures to abide by its own timelines in addressing issues raised in the 2020 FJN ASU MOU or MOA rather that's a memorandum of action. Neck-resolved strike be rolled over for four weeks to give government more time to satisfactorily resolve all outstanding issues. That's a very nice way of saying we can do that strike, you know, so that's the role of a strike, they say, is with effect from 12.01 a.m. That's yesterday, August 1. So this is where we are as far as the strike is concerned. And then, of course, we're not just now grappling with the strike itself. We're also having to think about a national industrial action by the Nigeria Liberal Congress. And if Kerry's not taking the trade union congress, who was saying that they will embark on a strike, a three-day strike, this is not a protest. The one that happened last week was a protest. The one that is coming next is a strike. That's the down tools in the entire country for three days if the federal government does not give us what they want. So ASU is simply saying, I think it's a diplomatic way of putting things, that they want to give the federal government more time.  I mean, you still give them time, but they are simply saying we are not going to resume until you give us what we want. So the suffering of Nigerian students continues. I think the private universities will be smiling to the bank. Of course, the foreign university will be smiling to the bank. The Naira will keep struggling because you have to get these monies, US dollars to pay for and pounds to pay for those who want to go to school abroad. A lot of people now, for them, the only option for their children is to fly them out of the country to school. You know, just fly them anywhere. Or you get a private university admission for your child.  Parents can take them to private institutions. What happens to them? I mean, many of these people in authority today, I mean, positions of power in the country benefited from one scholarship or the other, which were very quite common in their day. This time you have to pay even to go to a public institution. All right. But to even attend the public institution is a problem because of the inconsistencies. And it's a sad one. The president of Nigeria had made a statement when he went to his country home for the Sala holidays to, you know, say he understands what the parents are going through. Try and paint, he tried to paint a picture of what parents and teachers are going, students are going through. Somehow I've been speaking for them, you know, but you begin to wonder if you're speaking for them. You're the one who has a solution. So what are you saying? But another question, you know, the Minister of Labor and Productivity, Senator Dr. Kresingigi, last week, again, came out to say the federal government is broke and cannot afford to pay us the nearly one trillion they're demanding. Should I still take a step back? Should I still look at the way of giving the federal government some alternatives? You know, you can't have everything sometimes in negotiations. You look for a way to find a compromise or will I still stick its ground and say give us nearly one trillion there and then we will go back to the classroom. The federal government is broke is what they're saying. They cannot afford this money. Interestingly, the president of the Federal Republic of Nigeria had told the Minister of Education to take over the negotiations with the union. And of course, this was spread by the Minister of Labor and implement all this while it hasn't yielded any result. Let's see what happens in the next four weeks if ASU will go back to the classroom with this situation can be resolved. That's the size of a top trending segment right here on the breakfast. We'll be back and when we return we'll look at what the newspapers are saying today. Please stay with us.


silver has been used in medicine for centuries because of its antimicrobial properties. Silver nanoparticles have been synthesized and incorporated into several biomaterials. They have been applied in dentistry in order to prevent or reduce biofilm formation over dental materials surfaces. This review aims to discuss the current progress in this field, highlighting aspects regarding silver nanoparticles incorporation. This article was authored by Juliana Matos Correa, Matsuyoshi Mori, Heloisa Larges Sanchez, and others.


Here's part of a program that asks a user for a quantity of items to order and the unit price and then calculates the total price for the order. In the preceding video, I told you to omit the backslash N at the end of the prompt and to leave a space at the end instead. What happens if you don't do that? Let's try it and find out. Let's put in a backslash N, rebuild and execute the program. See how the input is disconnected from the prompt? It just doesn't look right. Now let's get rid of the backslash N and also get rid of the space at the end. Let's rebuild and compile and you'll notice that the cursor is too close to the colon. Again, it just doesn't feel right. Adding that extra space gives us something that looks right and feels right. There is one case where putting in that extra space at the end of the prompt does not help. Let's put up the prompt for the unit price and put a dollar sign there and the extra space and then we'll scan a double into the price variable. We'll enter the quantity and now when we enter this price, having that extra space again just doesn't feel right. So in this particular instance, I'm going to get rid of that trailing space and rebuild. Now everything looks right and feels right. In general, you should follow the guidelines to never put in a new line at the end of the prompt but to use a space instead. As you write more programs, you'll get a feel for those few instances when the extra space isn't the better choice.


Your Coca-Cola bottler presents Claudia Based on the famous play and novels by Rose Franken Brought to you transcribed Monday through Friday by your friendly neighbor who bottles Coca-Cola Relax and while you're listening refresh yourself. Have a Coke and now Claudia Well mama, we certainly got a table without waiting very long didn't wait at all Always so accurate mama. Oh, well, I guess I'll sit down and Roger David can sit between us Certainly taking their time about checking their hat great conversation going on between them and that check I'm not grudging knowing the half check girl is just a sort of thing that gets a person a table in a crowded restaurant without waiting I thought that's coming in at the height of the lunch hour. We'd never get seated. So don't mr. Killian Well seems to be quite the man of our town. Oh, mr. Killian is the kind of a man about town that has a restaurant All his own a barber all his own a tailor all his own He's very correct, but I'm very fond of him Say mama, where do you put your pocketbook when you're sitting at a restaurant table on my lap? Of course, it's a sort of cluttered and precarious Nafkin steps off my knees aren't happy. Your life is very complicated I know and it's you who makes it complicated. Here we go again being blamed for everything Well, you insist on moving back to New York. So what happens? I have to make trips into town. I wouldn't have to make otherwise and how you hate it high heels pocketbooks crowds and Luncheon's in swanky restaurants wait to eat. I'm starving here are the men now Oh good all settled is the table all right couldn't be better Roger You're certainly a man of influence. Oh mama's impressed. Oh dear. I call the waiter We haven't got so much time David now You are not going to start this rushing business with your meal take your time eating rush after Is that an order? Yes your lunch order waiter Waiter menus, please David. What are we going to eat? We? What do I have to do with we?  Do you darling? You order what you want and I'll order what I mama. Do you hear the way he's talking to me independent young man Isn't he Roger? What are you going to eat? Well? I haven't seen the menu yet I never make up my mind until I see the menu and I can never make up my mind once I see the menu my daughter suffers from an Acute desire to eat everything on the menu mister. Mama really everything except brains. That is she doesn't like brains That is obvious eating and having them at two quite different matters. Oh, here's the waiter now With the menus. Thank you. Thank you very much. Do you wish to order now or shall I well? We'll think about it for a moment. If you don't mind and I'll call you. Thank you very much, miss you. Oh An enormous menu. I'm mine. Well, this is gonna be very complicated David, what are we going to eat?  I always like it Remember the snails well Well, that was different. Oh who would like snails? Oh, and if I'm not going to order things How am I gonna find out if I don't like them? Claudia I admire your spirit of adventure. Thank you Roger royal chicken on Virginia ham with mushroom sauce That sounds tempting. Oh mama. I'd like that. So why don't you order it? It's very good here quite the speciality Oh, well, my mind's not completely made up, but I'm leaning towards it David You decided what you're going to eat yet. What's it to you everything? I Am going to order one thing you are going to order another thing then we'll exchange That way we'll both have both and who says I want both darling It's much better than having to eat a whole plate full of the same. I have told you a million times I don't like eating from someone else's plate in a restaurant. So stuffy stuffy or not I don't like all right.  What do you do with a man like that? Ignore him exactly pay no further attention to David You mama and I will work out a little scheme of fair exchange among ourselves now Do you hear that David even Roger will exchange? No, aren't you ashamed? I am not I haven't done this in years But I love it. Let's see Mom is gonna have the chicken on ham. Yes, my mind's made up chicken on ham. Roger. What are you having? Well, um, I thought I'd have the new England dinner.  Oh, then I certainly can't order the new England dinner Why don't I have the veal parmesan? Parmesan is that the veal with the cheese business on top? Oh, it's excellent here. Mm. I like that And let me see that tastes cavio and chicken Now what about me? Well, they're they're mixed grill is delicious. Mama like mixed grill I'm not mad about mixed grill the calves lever is exquisite sauteed in onion onions That's settled at onions Is this pretty good selection wouldn't you say I'll call the waiter over David old man, what are you going to have? I am having the Roast beef. You're sure that's what you want. Yes, that's what I want fine Waiter Waiter We're ready to give our order now. We miss here Ready one real parmesan parmesan one calves liver one calves liver smothered in onions One chicken on him And One roast beef medium rare he likes it pink in the middle and crusty on the outside and a baked potato. Well done We madam. Thank you very much for the details, darling. Well, isn't that the way you like it? I usually can take care of myself Well, I just wanted to be sure it was the way you like it Oh and wait her afterwards a mixed green salad with a little garlic rubbed on the bowl Just a little every miss here a little garlic a petite bird a soup son immediately Then now it will all be here in a moment service is very good here David you're going to be sorry my good man eating your lonesome roast beef and not a taste of my veal or mama's chicken That's what you get for being so independent. Am I to be persecuted because I have principle course you are Not sharing in a restaurant. I never heard of such a thing Well, that's half the point of going to a restaurant to taste as many things as possible Well, don't you care at all what the people around you are saying people around if they have any sense of probably doing exactly the same thing When are you so self-conscious anyway? Oh, there are certain things that I cannot stoop to thank you What a performance you're putting on we didn't know you better. We take you seriously, then it's too bad You know me better. I can't wait to start eating. I'm starving now Then let's organize ourselves ladies and not a bite to the enemy not a bite now How do you like to do it divide each portion into three parts or or change around or what? I think that's the best way and that way we'll get a taste of each other's while it's still warm Yes, and I'm the kind of eater who likes to eat all of one thing first.  We are and you'll be sorry Well, I guess it's like everything else in the world Roger. You can't expect everybody to cooperate Can you there's always going to be one rugged individual and it's the rugged individuals who have saved civilization That's what rugged individuals always say to themselves to console themselves. I just hate to see you lose out darling. Well, thank you for worrying No, here we are Ville parmesan here, please Chicken on hand for me. Oh, it looks delicious and Gav's liver right here. Oh How it smells I love onions and monsieur no more roast beef What did you say? I am sorry monsieur, but we are all out of roast beef I see he takes the blow no blade, but we have excellent blue fish. No, thank you. No blue fish What what else do you have that's ready? You are my Cards ever for you. I will get the menu for you sir. Fine. Thank you very much Yeah, you're outdoor. There's some chicken and some ham and you are too. Oh, that does look delicious Could I have one little mushroom? Oh, me too. Look at this feel look at it sizzling heart adjusts mother-in-cheese And done to a turn Here Claudia Now then here's for you. Thank you and Mrs. Brown For you and here is your cat liver and onions. No, if you could just see yourself We're not interested. I think we did that all very efficiently. Well, here we go. I'm drooling I can't decide which to eat first. I feel as if I'm eating three meals. I don't know which I'm going to enjoy most Oh, Roger. I'm so glad you took the veal. I never have the sense to take veal. It's so pale and I love it here Give me a little taste of that. Go away. Aren't you selfish me selfish? David go away.  The veal is good Is the calf liver good?  I certainly would I'll just put it on my bread. David, I know I'll take an onion for mama I don't want you to stay out of my place. Well, would you all have me go hungry just because I ran out of roast beef? Certainly would you a bolt-facer. Get away. Excellent calf liver cook. Just right. Not too well done He gave you now. That's all you're gonna have. You are not a member of our club Mm-hmm. It just does a man's heart good for one's wife and friends to turn against him when ill fortune begets him Just for that I ought to have a little piece of that chicken.  I certainly am.  You're letting yourself be wrong. What can I do? I wouldn't stand for it. Hmm. I don't mind sharing, but I won't be robbed. David You know he reminds me of some people some what some people They want everything to be given to them and give nothing in return Well, perhaps that's because they have nothing to give in return. That's true But David my boy, you might have had something to give in return if you hadn't been so smug You refused to enter into our pack and now that we are rich and you are poor all of a sudden you believe in sharing the Well, I marvel at how greedy some people are not greedy just not forgiving and speak for yourself No, I don't right have it your way locked me out because your ladders are full and my closet is bad Oh, you're breaking my heart. Now. I just have one more little piece of Claudia's calf liver and onion David Too proud to share but not too proud to steal not the same thing at all. No, aren't you conscious of other people watching? No, no, I'm not sharing is whimsy stealing is necessity.  He is tough and I feel as if I'd had but a crumb that is life the honest star and the dishonest eat What an excellent lunch you ordered my friends. What an excellent lunch When you're planning a home or club parties, there's one way to reduce difficulties to a minimum But Coca-Cola at the top of your refreshment list doesn't matter whether guests are young or old It doesn't matter whether there are a dozen or a hundred ice-cold coke quickly helps create an atmosphere of hospitality Oh, Mr. King have you an old crust you don't mind giving a hungry man So the three of you got robbed of your lunch didn't you the joke was on us a very hungry joke if you can think of a way I can get even with my partner. Let me know before tomorrow Well, you're not gonna have much of a chance to get even with David tomorrow. He's not coming into town. Oh That's right. He's staying up in Eastbrook about the schoolhouse plans and to be sidetracked Of course by Jared Tucker, of course Jared Tucker. How is the old man? Jared Tucker is fine But unfortunately, he doesn't know what time it is What that's right. He's out to buy himself a watch. Well, I hope he has a good time at it See you Joe. I'm going to get myself a bag of peanuts. I'm starving. I can understand that Every day Monday through Friday, Claudia comes to you transcribed with the best wishes of your friendly neighbor who bottles Coca-Cola So listen again tomorrow at the same time And now this is Joe King saying or a bar and remember whoever you are Whatever you do wherever you may be When you think of refreshment think of Coca-Cola For Coca-Cola makes any pause the pause that refreshes an ice-cold Coca-Cola is everywhere This broadcast of Claudia was supervised and directed by William Brown Maloney And now here's a word from your friendly neighbor who bottles Coca-Cola


Have you ever made a purchase based solely on the opinion of a social media influencer?  Have you ever tried to convince your friends and family that graphic novels really are a form of high art? Do you watch the Superbowl more for the commercials than for the game? If any of these apply to you, then welcome to Honor's 21st Century Media Studies, an interdisciplinary cultural course from the NCSSM Connect program. In 21st Century Media Studies, students will examine the ways that various modes of media influence us as individuals and as a larger society. Course topics include media theory, the aesthetics of various media formats, the relationship between media and reality, how media changes and influences our culture, and how responses to media change over time. Through these topics, students will discuss and debate issues and problems that include human meaning, identity politics, economics, gender, race, ethnicity, and community and belonging. Although this is an Honor's level course, there are no academic prerequisites or requirements. Instead, students will be asked to come to class with a willingness to engage over course topics and a real desire for learning. If you are interested in learning more about this fascinating and relevant topic, sign up for 21st Century Media Studies today.


So, good morning everybody, welcome to the Font Packaging Team BOF, Christian Perrier, and enjoy it. Enjoy. Well, actually, originally I wanted this to be a talk, bits from the Font Packaging Team. I turned it to a BOF, mostly because I didn't have enough material for a talk, to my opinion, and I felt like quite uncomfortable to make a talk without having all the material and knowledge and whatever. So, I decided to turn it more into a Font BOF discussion, particularly with the Font Team members. Some of them are around, some of them are not. So, I prepared a few slides as an introduction to Font Packaging and the work we are doing in the team, talking about the team, what are our challenges. And I expect a small discussion after, hopefully it happens, about what's happening. I did set up, just in case, a Gobi page, which I will give the details later on. So, okay, move. So, well, okay, this is traditional in my talks, so you, many some people expect that, my son may expect that, so he will see my SpongeBob in my talk. Here we go. This is not a talk, but even in a BOF. If you want to play with a Gobi, I did set up a session with Gobi, with the usual recommendation for using Gobi. Install Gobi-05, launch it. Open Gobi.debian.net, and you can open the page named, depthconfig11 slash DC11 Fonts BOF. This is, this one's meant to be the Gobi, and this is it. So, in case after when we come to discussion, in case there are ideas exchanged, I would appreciate if someone just take notes, because I can do both things at the same time. So, what about font team? Well, the team, it's quite a big team. It was founded in 2007, more or less before depthcon7 in Edinburgh. Nicolas Spalinger, and mostly myself, we talked about font. The fonts before they were spread all around the archive, maintained by many people without real connection, without knowledge sharing, etc. So, we decided, along with Nicolas, has a great knowledge about fonts, about font licenses. Knows many people around the world who are doing font design, a free font design. So, we founded this PKG-Fonts team, which is hosted on Alliot, since four years. The goal of the team is obviously to maintain font packages and related tools. There are 44 members. I come to this morning, I was surprised, so many members. Indeed, about 11 are really active. May you around those people who are members of the font team, raise your hand, please. Thank you. We have DKG over there. We have Hideki Yamane over there. Arne Goyde here. And Kanru Chen here. And myself, I think. Whoops, and Daniel Glace. Oh, sorry, I wasn't seeing your hands, Daniel. And here's a new team member coming. Welcome, Paul Weiss. And Carolina is not a team member. So, yeah, about 11 people really active, some maintaining fonts, some are maintaining font-related tools. This is about the team. What I didn't put on the slides, we mostly work as most team on the mailing list, and this list is set as maintainer for whatever packages we maintain or team maintain. I did a brief survey about font packages in the archive. We have 129 source packages maintained by the team. I was very surprised by this number. I didn't expect we are maintaining so many fonts. I don't know about you team members who are here, but I was expecting like 50 or 60, 129. We also maintain some utility packages such as font forge and related tools. Mostly font forge is one of the most important because it's used to compile several fonts. I counted all over the archive, which is a little bit more difficult because what is a font package? Theoretically, a font package is in section fonts. So that's easy to count, but sometimes this is not a font package. This is a font utility package. So I counted 210 source packages in section font. Out of these, probably 156 are named ttf-something or otf-something and fonts-something. Those are very, very likely to be font packages and always source packages. So more or less, the font packaging team is maintaining most of the fonts we have in Debian. I think we maintain probably the most used of them. So in short, these, the characteristic I would say of these font packages, they are very, very well hidden. We have few bug reports because there are no problem with fonts. Most developers use them. But he has fonts on his or her laptop, but we don't really care about them. We don't even care sometimes about the default font. I was asked during breakfast, but what is the default font in Debian? And the answer I gave as a long-standing packaging font team member is I don't know. And this is, I don't know. Really, this is something quite hidden for many people. But this is something very important for many other people, particularly those people whose language is not Latin based. This is what brought me to the font management because internationalization, which is my main activity in Debian, is closely related to fonts. If we have translation to Uigur, we need a font to display Uigur. Otherwise, it's good. We have a translation and we can't use it. So that was, but this is something quite hidden, you know. And it explains also this thing that why the maintenance team is very, very international. We have many people concerned by Asian fonts, mostly. Because the need here is higher to display Japanese. I would take Japanese as example. You need high quality font, well-designed font for readability. This is probably the same for Chinese. Arnie can confirm, I guess. So this is something really, really more, really important. And we have one more font team member. Please welcome Tep. I will never try to pronounce Tep's full name. Sorry for that. Tep is one of our developers from Thailand. And maintains the Thai fonts, if I remember well. Basically our work in progress. This is meant to be introduction to a more wider discussion. I said this is a buff. This is not a talk. So this will become a buff. We are working on removing this old thing named Deforma, Debian font management. This is something now we can define as old, useless, full of bug and not maintained. So very, very good candidate for removal. The problem is that many packages were depending on Deforma. So this is quite a hard work to do. And work mostly led by Paul Weiss. We did set up some pages, some tracking, some bug tracking. And we did a lot of work during that camp. I planned to put how many packages are left. Actually I was waiting for some input by Paul. We'll have the answer soon. Live update. Live update, yes, definitely. By the way, if someone could monitor maybe the ISC channel round room. I don't know if you know about this one. If someone can relay questions from here. Okay, thank you, Andrew. Yeah, I see there are some contributions. We are also working on renaming font packages. It sounds silly. Why do we want to rename font packages? This is mostly a consistency with other distribution. This is one of the reasons. Also because most font packages are named TTF-something, which means true type file. But some of them are providing open type fonts. So that sounds a little bit silly. We had a long discussion in the team about how to name fonts. And now we have more or less converged about how to name font. This is part of the font packaging policy we're working on. And the work is going on to rename the fonts packages. And 39 are done. I counted this morning. We have 39 font dash something. Most of the work has been done by Hideki Yamane. We've converted most of his fonts about one or two every day during DevConf, I think. Yes, that was a hard work. More complicated than it seems. Renaming a source package is quite not complicated, but you have to be very careful about the transition, of course. We are working or not enough working on the font packaging policy. This is a work that was initiated, discussed by Nicolas and myself. And then Rogerio Brito took it over. He's not attending DevConf. There is a document I can show you if I don't mess up with my stuff. We have a kind of draft document. I will not read that document, of course. It is meant to explain how a font package should be named. What guidelines we can give for stuff like Debian rules or things like that, et cetera. Mostly one of the points you can see this point, see the work that Fedora has already done. Other distributions also worked on such standardization of font packages. We need to exchange with them. It's not completed status at this moment. There has been some work tracking or how to call that about embedded fonts in PDF documents. Am I right to talk? Mostly DKG, you did some thoughts. That would make a more interactive session if you can pass the mic. There is a mic somewhere. Who has the mic? That becomes a buff and not a talk. I haven't actually done a lot of work with the embedded fonts, but I understand the problem and I can try to explain it. The PDF can contain a subset of the fonts that are in use. One concern is that we may be shipping PDFs from other packages that embed glyphs from fonts that are not themselves free. That can be a problem either because we're violating the license of that font because it may not even be redistributable or it may be a problem because it simply doesn't meet the DFSG guidelines. You can run PDF fonts on any PDF that you find and have a look at them. You can have someone do that in an archive-wide fashion to at least try to get a list of what's available.  There's no guarantee that the name that is embedded in the font is actually the exact name. So there's some fuzzy matching that would need to be done to make sure we know what's going on with that. Are there any PDF files or are there more formats that may embed fonts? I only know about PDF files, but I'm not going to make any claims about any other formats. PostScript? Maybe PostScript? SVG? Yeah, maybe, I don't know. So yeah, doing that, it opens a big can of worms, you know? It can become quite a large work, but that's probably part of the stuff. This is one of the tricky things, I think, with fonts. The tracking, whether something is free, according to DFSG, or not free. Paul? So an update on the Defoamer numbers. There's 18 source packages depending on Defoamer. 18? Yeah, and I think four Defoamer backends, so four packages that need to be converted to use font config for finding out about fonts instead of using Defoamer. Yeah, I didn't go into details about Defoamer, et cetera. Basically, one of the reasons I didn't want to make a talk is because there are some things I don't really know about all this stuff. Defoamer became useless because all the magic that it was doing is now included in font config. So installing a font to make it work with the desktop environments basically means now you just throw up the TTF or OTF file. I'm mostly talking about vector fonts, more than bitmap ones. You just throw up the TTF or OTF in usr-share-throughtype, I think, and that's it. All the magic is going and you have the font in normal, KDE or whatever. That's basically the point.  That was the first point, useless. Non-maintained, definitely. You can look at bugs.dbn.org-defoamer. You will be scared. And the code is horrible according to everybody who has looked into it. No offense intended for the original author, but nobody can maintain it except the original author. So Embedded Fonts is one of the topics, and another topic is all this stuff about tracking non-free fonts, license variations, and duplicate fonts. Several packages, often games, are providing fonts with the binary package, and sometimes these are duplicates of fonts that are packaged into font packages. So this is mostly one of the points. And freeness when it comes at fonts is very sensitive. You can find fonts all over the web. Some are called free, but you won't know what. Free how? What license? Sometimes they are just a web page. Okay, this font is free. That's all. And some of them might be in some packages. There have been some issues with the Indic fonts, the fonts for the languages of India. Some of them have a status that's not completely clear. So this is also sometimes a sensitive topic. And packaging fonts, most of the time, the most difficult work when one wants to start packaging a font is to check about the license. I don't know much about font licenses, so I don't want to go into details because if I'm asked about open font license and why it differs from GPL or whatever, if someone knows in the audience, please speak because I am not able to explain these details. Please, Andrew. The main issue, as I understand it with font licensing, is that if your font is used in a document, there are situations where it can be embedded differently to... The GPL has got its included codes thing, but you don't want the font license to extend to the documents that use that font. So that's the main reasoning behind the differences in the fonts. The free fonts are freer than that generally. Paul Sladen speaking at the back. In a nutshell, if you use a font in a PDF file, and it's GPL, it makes the PDF file also GPL. And unfortunately, people's theses, which are normally copyrighted, their university obviously can't necessarily be GPL, and this basically means that a font becomes unusable. So virtually every single font license, open font, the UFL attempt and various other things, GPL plus font exception, they all have an additional exception, which is additionally, when this font is used in an embedded document, the font license does not apply to the document. Yeah, that's one of the points. Yeah, this is a point you find in the OFL. Yeah, that's something. So this is quite tricky stuff, and sometimes it brings some discussions and stuff like that. Well, I think I might have yet one slide. Yeah, that was a few nice places to look at. There has been some nice work. I may be failing at promoting it more. Particularly, I went over the last days over the Debian font review. This is something we are hosting on our website. I can show this. This one, this is our VCS. Of course, I lost that one. So I need to take it again. Hopefully, nope. Let's type it. This is a buff. No, not this one. It's about spam review. Nothing to do. pkgfonts-fonts.aliot.debian.org. Yeah, is it coming? Oh, yeah. So this is an automated tool that goes over the Debian archive. I don't really know about the details. I'm not even sure about who wrote this at first. Maybe Nicholas or you? You were the culprit for that. Maybe Mike. So originally, the script was written by Miriam Ruiz. Oh, yeah. And then Nicholas took it over and I've worked on that a little bit as well. Okay. So first by Miriam Ruiz, then Nicholas Palinger and then Paul. So you can take, well, whatever font. Is this one you want to see? A nice one. ttf-dkgnriding. Where is it? ttf-dkgnriding. This one. And you get more details when clicking on the font. And, well, several font about family and all this stuff. And yeah, this is quite elaborated stuff too. It's interesting to get a rough idea of what's covered by the font, et cetera, et cetera. I wanted to show the... I don't know. My favorite one is... Oh, isn't it here? Oh, it's fonts. Now it's named fonts, because we have many ttf-something, but now we have fonts-something. Fonts, kitsch, Uigur. And yeah. I even have some missing stuff. This is meant to represent the Uigur language. And many, many... There are many fonts in this package. So you can easily check the differences between the fonts, mostly with the... I don't know about the algorithm, how it chooses which glyph to show, because, for instance, for Uigur, the important part is to show the Uigur glyphs, not the latent ones. People who want that font basically wanted to display Uigur. Oh, Ebru, if I want to take another example. Thank you, Leo. And it's probably right-to-left language, I guess. Uigur. Yeah, so that was a few nice places to look at. There is also another one. Yeah, please. So the images are generated using fonts for issues that are commonly found in fonts, like glyphs that intersect with themselves and stuff like that. And we have also a font, well, by... Oh, sorry for that, Kano. Please. So I think it's possible to provide web fonts. Yeah, we have so many fonts in the archive, but these days, web fonts are... Yeah, on the web page, you can use the system font. Well, it has been discussed, I think, the KGB. I don't know that there is an initiative within Debian at the moment to provide our own web-based fonts service, but now that you bring it up, I think that would be actually a really great thing because one of the things that web-based fonts can be used for is a type of surveillance and tracking across websites. And if we were to run a service that was guaranteed to not track, then we could provide all free fonts for all web pages that people could potentially cache, which would allow automatic font updates for any web page on the internet-wide. So I think that would actually be a really neat service for Debian to try to provide, even for people who don't use Debian, if their browsers can support the various forms of web-based fonts. Yeah. I can't do it, but it would be great if somebody wanted to do it. So question opened. I noted that in the Gobi, but at the moment, there is no effort. Peter, please. One thing that occurred to me, I'm not sure if it's actually possible to do at the moment, but with Ubuntu and browser plugins or multimedia plugins, when the browser tries to visit a page needing a plugin, it will pop up a window asking if you want to install the packages that support the memotype that's missing in the browser, similar with video codecs and stuff like that. Would it be possible and is there anything present in the moment in the TrueTight library, for example, that when the font is missing, will it pop up something and install whatever is missing? Can we implement it if it isn't? Before Paul answers, at the moment, we obviously have nothing like this. It's obvious for anybody, but... So this sort of thing is provided by a program that Fedora has been working on called PackageKit. They publish font metadata in their repository metadata, and then the PackageKit tool has a GTK plugin thing that looks at the fonts that a program is using and then pops up if there are some other fonts needed that aren't installed. In Debian, we have PackageKit, but we don't yet have the metadata published in an appropriate way for PackageKit to use. We now have the version of font config that Fedora added their patches to, so we could potentially work on that. I think all the bits are there, but we're not using them yet. These are probably among those cool things to do with fonts and get further than we are doing now, which is mostly maintaining font packages. Andrew, please. Just a comment from IRC, that there's a plan to add SDF scripts to Debian Helper, like SFD scripts, to Debian Helper, like DH AutoBuild. Okay. Can someone please go to the Gobi and note that? It would seem to be a statement on IRC, but from X by TMX. Who's that? Can someone do a slash who is on that? Tony Palmer. Or introduce him or herself, maybe. I don't know. Okay. Well, if someone has a Gobi opened and take notes, it would be nice because I can do in the same time. Yeah. You see, there are ideas floating around and my point, my own point would be to go further than just font packaging, but for that it needs people who have quite some skills in fonts much further than mine because my skills in fonts is basically knowing what a font is, that I can open it with font forge. I know about packaging fonts but that's nearly it. So it's a little bit small for leading some efforts and drawing things. Leo, please. A more general question. I maintain a few fonts for Hebrew and Arabic and I was thinking to move it to the group repository. My question is, is everyone in the group just maintain his own fonts a team work which everyone can maintain everyone's font? To find out if I just do the same work on another group because I do it in Hebrew, Arabic or would I actually get help from others? Well, other team members you give your opinion on this but what's happened up to now is we do put the team in the maintainer field in Debian Control so the bug reports go to the PKG fonts development list which is open for posting and we put in uploaders those people who are more responsible for the font. So there is a kind of lose priority of those people mentioned here but that's nearly it. So the agreement in the team is that yes anybody in the team can maintain another font but for instance I will probably leave Hideki Yamane maintain the fonts is maintaining most of the time is working stuff on that and I will not interfere with this work except if we well and if there is something wide or if has no time for that or something like this. So it's very open and we can probably cope with everybody's needs. If you prefer being really responsible for this font it can be still maintained in the team repository and benefit from the team discussion and that's all. The credit or who is the maintainer who is maintainer who is actually about team work and benefits from moving into the team instead of doing it by myself on the side. For the maintainer I'm not really sure there is a big benefit honestly speaking one of the benefits is that we can know that at least someone will feel responsible for the font if something has to be done. Take as example the deformer removal it was very easy for those who were in the team repository because we just made the changes and re-uploaded the package and that's it.  The benefit is more overall than the maintainer herself. Thank you. About the deformer removal anybody knows about the status of the latex and ghost script? You mean about what we are trying to achieve and make I'm not sure I did really get the question. The deformer was used to configure these font packages in the latex and ghost script but since now the ghost script can use the font config but we still need some files in the ETC CRD map. Maybe Paula has a better answer than me. So for text I don't think it ever supported deformer at all. Ghost script had had better support for font searching under deformer than it does now. That needs to change maybe someone would like to write a script to generate the files but ghost script itself needs help. Where's Jonas he's not here. So Jonas is maintaining ghost script along with the printing team now and he's quite overloaded so if people want to help maintain ghost script that'll be good and it does need better support for font config currently it doesn't have that great support. But other distributions like gen 2 and stuff I think they have patches that we could use to make that better. I don't know if that answers your question but I think Paula has a better answer than me you know. So yeah basically the point of the team really is to bring the common knowledge in Debian to the team and share that knowledge because of these hidden nice things that are going around it also helps identifying un-maintained stuff. So yeah we have five minutes left. Just in the spirit of throwing out interesting things that I think the font team could do in addition I mean along the lines of the web fonts or the PDF looking for embedded fonts I know that Inkscape in the latest version now has SVG font capabilities but it's very clear to me at least how to use them to generate a font. And I really like the Inkscape interface in general and I wonder if anybody is interested it would be I think a useful thing to do to look at how Inkscape SVG fonts work and maybe to feedback suggestions upstream to Inkscape about how they could improve that interface and maybe write up a tutorial about how to use it. Inkscape SVG font support in a Google Summer of Code project that's on at the moment so I think it's probably a moving target right now. Paul you have something to add? No, okay. Anybody has other comments or whatever topic we can fit in four minutes or something? Just to clarify that point from ISE earlier this one was asking whether there was a plan to add SFD scripts to Deb Helper. To add SFD scripts? He says that when a font upstream with SFD is used to build a Debian package the maintainer must add a script to make a TTF or other font type. SFD is the type of forge format. To provide the kind of standard script to build a font from an SFD file. I think that's the domain of upstream they should be providing a make file which DH will automatically use. Yeah there's not much point in Debian having a specific way to build fonts. We should just use the upstream way. Paul. It does bring up the whole question about to what extent fonts actually want rebuilding from source if the source is available. I'm going to appreciate I have bias here, I open hands I work for Canonical at the moment and we make a font called the Ubuntu font family which is going to get pillar for being non-free and etc and made by Canonical and made by non-free tools and stuff we looked around for a long time trying to find a font house which would make a professional font using only Inkscape and font forge and there weren't at the time any realistic possibilities of large enough companies that could do kind of five scripts and 13 weights using the free fonts free tools so we have theoretically a free and open font but built with Windows tools which of course in Debian we can't rebuild from source now because we've got source code that's the worst situation if we just have the TTFs because if you just got the TTFs the TTFs in many cases are considered source code but because we have got source code but we can't rebuild from it so it's definitely not something we're going to main at the moment because we can't rebuild it from source but it does open up that question about to what extent we do want to rebuild if there is or if there isn't the option to is it free should we actually be more strict or less strict or yeah this is kind of a discussion we had already in the list and some of fonts we rebuild from the source some we don't it's not at all standardized definitely yeah maybe one last comment probably and we will probably close up so I think that those fonts should that we can't rebuild from source belong and contrib and I understand that canonical tried to find a font house that would use free tools and we're unable to and I wonder if we can use this as a moment to say okay well can we can can we transition this font from a non free toolchain to a free toolchain so that we can put it in free in main I would like to see it in main and if we could help the font house that created it use free you know have a have a free source to build it from I think that would be good so if we can use our leverage to push towards a better more usable free font toolchain I think that's a positive result that's what I would like to keep as a final comment and one of the goal we can have is to promote the use of free software for creating building etc font and this is one of the reasons personally speaking that I prefer rebuilding from source with font forge it also helps in finding nasty bugs in font forge itself which is I think a good thing well I have to conclude this both I am amazingly surprised how alive it was I was very scared about having a non-live both I hope I didn't turn this too much into a talk and I would like to thank you everybody for making this a live both thank you very much


A.J., what do you think of the allegations you guys were using whistles to try to gain some kind of advantage? Man, I'm glad you asked that question. And I thought it would come up today. And it's, you know, we talked about this the other day. And in reality, it's a joke, but, you know, Major League Baseball does a lot to ensure the fairness of the game. There's people everywhere. If you go through the dugouts and the clubhouses and the hallways, there's, like, so many people around that are doing this.  And had I known that it would take something like that to set off the Yankees or any other team, we would have practiced it in spring training. And we would have got, you know, it apparently works when it doesn't happen. So to me, I understand the gamesmanship. I understand kind of creating a narrative for yourself or wondering how things are going.  And so, you know, nobody heard it. You guys have audio, video, people in places and nothing. And there's no evidence of anything.  Pitch tipping is a little bit of a different story. If you don't want us to know the pitch is coming, don't do something that demonstrates what pitch you're going to pitch or what you're going to throw, but they're doing the same thing. So every hitter wants to know what's coming by virtue of what a pitcher is doing or not doing. The problem that I have is when other people take shots at us outside this competition.  But we have people that are unnamed or you guys have sources that are giving you information. I suggest they put their name by it if they're so passionate about it to comment about my team or my players. There's nothing going on other than the competition on the field. The fact that I had to field the question before a really, really cool game out of Yankee Stadium is unfortunate, but we can put it to rest. It'll be the last question I answer about pitch tipping or pitch stealing. We now know that to not be true. The Astros hit with severe sanctions by the commissioner, Rob Banford. We know that AJ Hinch dismissed from the team, banned for a year. We bring in our Yes Network colleague David Cone now. You heard that coming in, David. He was kind of poo-pooing it in mid-October, but the reality hit him hard today. What are your thoughts on the fallout? Yeah, just listening to that, that audio right there from AJ Hinch. Well, you could really hear the emotion in his voice and, you know, a strong protest. And I guess there's the old Shakespearean line, right? That protest too much. So, you know, maybe it was a little foretelling, but he paid the ultimate price. Who knows what his career happens from now on out. He certainly is out for a year. He's fired from the Astros. It's a strong statement from Major League Baseball and a strong statement from the ownership of the Astros. And Jim Crane's press conference was very emotional too, as well, along with Jeff Lunow, obviously the general manager out. There was a strong press conference from an owner who took it a step further than what even what Major League Baseball brought down today. Well, David, give me your thoughts on that, what the commissioner did, what Jim Crane, the owner of the Astros did. Did you think it was appropriate? Did you think it was too severe? Give me your thoughts. Well, you know, I think right off the top, I was surprised. I really was. I did not realize that Rob Manfred would come down that hard and also Jim Crane on top of it, doubling down. So I am surprised a bit. I thought that the defense that, you know, everybody was doing it. We were just, it was kind of the Wild Wild West. I thought that would probably, you know, have a little more, a little more relevance in terms of their defense. But Rob Manfred obviously had heard enough. His investigation was very thorough. And I thought a year's suspension for both of them was pretty strong in my opinion, and the industry thought maybe it could have been stronger. You know, I know that it's debatable at this point, but I thought it was pretty strong. And the fact that the owner, Jim Crane, doubled down, as I said, really made a statement to me. David, you've been a strong player advocate during and after your career. In that audio clip that we heard, AJ Hinn said, well, why doesn't someone come forward and put their name on it? Mike Fires did. He was a big source for the athletics story in baseball circles. Mike Fires a hero, or is Mike Fires a pariah? Both. It depends on what side of the fence you are. I'm sure there are some within the industry that will think that, you know, that he broke a code to a certain extent. I'm sure there are several players that will feel that way. And then there were other players that will feel that he was honest and showed integrity and did what he had to do. And it took a lot of courage to come out and do what he had to do. I think a lot of these issues will follow along the lines of pitcher-hitter.     So I really think this may break down on partisan lines, as they say, between hitter and pitcher. And of note, I think, is that Jim Crane, Astros, was a college pitcher. So, you know, I think there might be a little bit of pitcher bias, too, in terms of his thinking and how you view this whole situation. David, want to read an excerpt from the ruling as it pertains to A.J. Hinch. This is what the statement was. Hinch neither devised the banging scheme nor participated in it. Hinch attempted to signal his disapproval of the scheme by physically damaging the monitor on two occasions necessitating its replacement. However, Hinch admits he did not stop it and he did not notify players or Quora that he disapproved of it even after the Red Sox were disciplined in September 2017. As the person with the responsibility for managing his players and coaches, there simply is no justification for Hinch's failure to act. Although I appreciate his remorsefulness, I must hold him accountable for the conduct of his team, particularly since he had full knowledge of the conduct and chose to allow it to continue in 2017 post-season. I want your thoughts on that specifically because it seems like it could have taken one very simple five-second conversation with the team. We're not doing this anymore. Hinch never delivered that message. Yes. It's a little bit weak. That part of the report definitely comes across as weak because there's no way you can be a manager and hear a banging on a trash can and not be fully aware of what's going on. If you're in that Houston Astros dugout, you had to know what was going on. You had to be a part of it. You're complicit. I understand that A.J. Hinch said in his interviews with Rob Manfred that he messed up, but it's more than that. You were complicit. If you're fully complicit, you've got to come fully clean. I'll give him a little bit of the benefit of the doubt because we weren't in that interview room and what he told investigators, but that particular part of the report comes off as a little weak in my mind. David, you've been a part of plenty of teams that have had to deal with controversy, had to deal with some scandal. How do you think this Astro team moving forward is going to be able to handle all of this? Well, I think in some sense, Jim Crane did what he felt he had to do and just clear the decks. There's no waiting. There's no manager and interim. There's no talk about this the whole year. What happens when A.J. Hinch comes back or Jeff Lew now? That is all a mood point. In some ways, he set the tone right away and made a very decisive decision so that allows the Astros to begin the process of putting it behind them, but this will forever be in the annals for them because they won the World Series in 2017. The one thing about this report that I think was new was that it was proved for the first time that they used it in the postseason and if you look at the Yankees and Astros postseason and how different of a team they were at home, where they won all the games against the Yankees and when the Yankees played them in Yankee Stadium they look like a completely different team and that includes chasing breaking balls out of the zone. Well, that's something that will never ever be forgotten, certainly not by Yankee. Yeah, it will stick to that 2017, no doubt. David, thanks for taking the time. Look forward to seeing you again in a few months of the 2020 season.