sugar, spice, and everything nice. These were the ingredients chosen to create the perfect little girl. But Professor Ina accidentally added an extra ingredient to the concoction. Chemical... ah.


Hello everyone, welcome back to the Photoshop 2023 tutorial. I'm going to show you how to do the one-click, delete and fill option. It's brand new in Photoshop 2023 and I'm doing it right here. Let me show you how it can be done. It's very easy to do. Let's go ahead and delete the top layer. Starting from scratch, it should take about 60 seconds maximum. Okay, here we go. We've got an image loaded up. The first step, go over to your left side, grab the object selection tool. When you do that, it'll select objects. In this case, it's going to select this runner. I'm going to left-click on her and presto. You'll see it's made a selection all around her. This is an optional step, but I recommend it. You now want to go up to select, modify and expand it. We want to expand it about 30 pixels around her because when we delete her, we want to delete around her because we're using what's called content-aware fill. So we've expanded it. Now all you need to do is hold down the shift key and hit the delete or the backspace button. It loads up the fill, make sure content-aware is selected, click OK, and she will be gone in about three seconds. That is all there is to it. Thanks for watching.


D-Led, you want to start us off? Yeah. Clear. How you doing today? Doing great, yourself, D-Led? Doing pretty good. Doing pretty good. Just to say, last time, the special teams didn't turn up as big, but Meyers since they settled their field goal keeping situation, and Harris is always a threat. We're some of the things you've got to do to make sure you don't let him lose. And then they go kicking games with the guy. But overall, their special teams unit, they're well-rounded from top to bottom. We talk about core players. They're specialists. And then you talk about their dual returner with Harris. It's going to be a great challenge, as it is every week, but particularly going against this team and how aggressive and how sound and how physical they are in all aspects of the special teams game. I look forward to the opportunity to go out there and try to affect any kick or punt as possible, be able to do a great job of corralling and keeping leverage on Harris and then making sure that we could help our offense out in the return game. So all phases, we're looking at, you know, it's all hands on deck when it comes to this. And it's a great opportunity to finish the season with the win in our stadium. How difficult was the last week with the juggling and making sure you didn't know who you were going to have to ride up to game time, I guess, with the COVID situation last week? It goes back to we keep a small-menu big understanding, and our roster continues to evolve each and every week. And it's the next man-up mentality. And it starts with our head coach, Coach Smith, and the mindset that he brings to our organization when it comes to our players. Anybody that's on our roster has the opportunity to play on any given Sunday. So having that opportunity for our players and our guys are being staying ready and being prepared before the opportunity presents itself. It speaks volumes to our players and speaks volumes to our head coach when it comes to that. But it worked out well for us. You know, obviously we want to come out with a win, but the guys were ready to go, and they gave it all, and they played their hearts out when it came to the game. The Saints folks are talking about Thomas. Has he, since he, you know, has any feelings about playing this former team here? Obviously, when you play a former team or you go against a former organization where you were for a while, you might have some type of feeling or some type of way. But you talk to Thomas, it's another game. It's another opportunity to put his best foot forward for our team, for our organization, and for our special teams unit. Just so happens, we are playing the Saints.  How have you seen Avery evolve in his rookie year?  So understanding the rules, understanding, you know, his opponent, understanding the kickers and punters that he's going against weekend and week out, and he continues to get better at reps. And it shows with his preparation.  He'll come and have extra meetings. But it's not a surprise when he has success on Sundays, when he's putting into preparation before the opportunity even presents itself. So it's a big testament to who he is as a person and how he prepares each and every week. So, but he continues to get better. From the outside, looking at it almost kind of really seems like even in year one, he's kind of reached the vision of what you guys drafted him to be. Do you kind of feel that way, that he's on the way to kind of reaching the ultimate vision of what y'all thought he would be? No, his role will continue to evolve, you know. He makes whatever his role's gonna be, whether it's now or down the road. You know, as we talk about this season and getting ready for this last game, he continues to get better with reps. That's the best way I could say it.   And, you know, whatever his reps are, whether it's at defensive back, whether it's in the return game, covers units. Each and every day, he continues to get better. And it shows with the work that he puts in. But, you know, his vision, I say, is limitless. And I say that for a lot of players, because we always strive and we always strain to push them, you know, past their potential and try to get them better each and every day. That's our job as coaches. And it's pretty cool and it's pretty rewarding to see guys have success both on and off the field. So I'm excited for him, Tori. Coach Marquise, the Saints Falcons games are always super, super competitive. And a lot of times, they get to be really close. So I was kind of listening and reading some articles on Young Boy Cool the last couple of days. And I'm thinking how important is it or just how good is it for you to know that you have a weapon like that, especially if this game comes down to, you know, the wire in the end? You know, any time you have a player that could contribute a points on the board, they're very important. Just so happened, we have a player like Young Wei. He does a great job of, you know, being consistent and being effective when making his kicks and kicking off, too, and his coverage ability. So, yeah, it is important when you have somebody that can help directly put up points on the board and they're consistent at their job and they have the great mindset and have short-term memory to go out there, no matter they're playing in adverse conditions, if it's end of game, end of half situation, or, you know, it's just a regular PAT, they're consistent with doing their job and they're reliable and we can count on them day in and day out. And from your special teams for a second, I know we don't wanna look too far into the off-season or next year, but how do you balance that in terms of making sure the team is competitive and special teams is staying focused on this game but evaluating players to see where they could potentially fit for you next season? The biggest thing to Nietzsche is being in the present. Like, I can't even think about tomorrow until we get through today. You know, we win today and we make sure we have our best practice of the year come today. So, to answer that question, you know, we'll get there when we get there, but our number one job right now and our number of responsibilities is to win a home game versus a divisional opponent, which is the Saints.  You know, we had a great meeting this morning, offense, defense, and special teams, and we're excited about practice come today. Even though I'm going back to camp, you guys have used so many different punters, right? I mean, five or six maybe. Yeah. What are some challenges of having that many guys and has Thomas kind of maybe finally stabilized things a little bit? Well, I think the biggest challenge is not actually having the punter, but it's the process because not only does that punter, he has to do a great job of punting the ball and marrying our coverage, protection with how he punts the ball, but he has to hold for coup as well. So that whole process of getting those guys on the same page when it comes to holding, comes to our cadence, how we operate on the pun team, the logistics from the sideline, how we communicate in the sideline, how we get on the field, the different checks that we have, that whole process takes time. You can't take any shortcuts within that process. So that's been the biggest challenge for us. But again, it's uncomfortable, but it allows for our team and our special teams unit and our specialists to grow greatly from those uncomfortable situations. And that's where we gain our experience from. So even though, you know, there was little, it was hard going through those certain processes, you know, day in and day out, but we didn't take any shortcuts and it makes it worth it. And you can see the success that the specialists are having this year. Kind of following up on what Scott's saying about just the changes that punter, but what is it about Young Wake who the table to just stabilize with all of that constant change? I think his experience, you know, his experience, he didn't have, you know, the glory road. He didn't get drafted. He got cut his rookie year after he beat out a kicker. He was on the street for about a year and a half, went to a different league to play and then got the opportunity, middle of the season here in Atlanta, I believe in 19, correct? And then had his opportunity. And, you know, and then also then last year, went through a coaching change after having a great season. So those experiences and going through those peaks and, you know, valleys and going through his ups and downs, it really made him a stronger individual. It really did. And you could ask him through his experience throughout this journey, throughout the NFL. Cause there's times as a specialist where he like, man, that might have been my last game in the NFL, but he stuck to it. He kept working. He stayed in the present and he found his process and how he operates and he's operating at a high level. And he'd never forgets where he came from. Every time he walks through that tunnel, it reminds him like, hey, I got to, you know, put my best foot forward and I don't want to go back to where I was before. So he has humbled beginnings. He understands where he came from and he continues to stay humble. So he doesn't get humbled. So that makes sense. So he does a great job of that. And day in and day out, and I love working with him as all the other guys in the locker room. He does a great job being a leader by example. And he's a man of high character, high integrity. Is that all right? Thank you. Thank you.


So today I wanted to do something that you guys will probably guess what it's gonna be because you've read the title But I want to carry on doing my comics if you're new here I draw and write comics and I want to carry on doing the character design for my main character Who does not have a name yet? So if you have any suggestions down in the comments, you never know Maybe you will be the character name of this character. So this character I have done a few things already I've done some headshots and some sort of expressions to try and get to grips with like who the character is And I really like this one where she's kind of like more round. The skin color is too bright here I've done some other stuff like this was initial concepts For her. So if you guys are new here Don't know me. I write comics and I've written a few already So sorry there's a train, but we're very casual here on this channel also grab a coffee and settle down But I've written a few already Wishing on a star and the slow and all at once disappearance of a little newbie Which I wish was a shorter shorter title because every time I say it. I'm like, what is it again? I can't remember and Yeah, so I want to emulate these styles and I do really like these styles So I wanted, you know go for it Emily is burning is a little bit different because she has like Paper background as her like colors except for the the pink of her like cheeks But yeah, so I want to not do that again But I do like the style of having like just the white come through But yeah, I think I think it's done. I think I've done it there. Um, so I've got this script written out here, but I don't necessarily have Ideas about the character done in my mind. So I've got my handy-dandy pencil here and we're gonna start Sketching out some ideas about her because we need like maybe some like thought process about who she is as a person MC because I don't know her name yet Again, tell me down in the comments. So she likes thrifting. She lives alone She calls her mum who lives on the other side of the country. We know that in the script So she's probably close to mum I have a feeling that the dad is not in the picture them because we don't mention her in the script But I see her more as like a homebody who likes to decorate and take care of her space So I'm trying to think like what would she like as a as a person like what would you like to eat? What are her hobbies except for thrifting? What does she do in her spare time? What does she work as? But yeah, so kind of got like a little bit of more rounding out the character. So I want to look at What I've done for her face The face this is like a really nice So I've kind of like done this like round face, right? And then the cheek is like out and I think she is very soft I think she's like a nice person quite young as well.  I've just done like We've just done like three sort of like sharp Angles for her Back of her hair just so it could be like a little bit more consistent when I'm drawing her. Yeah, and then the mouth I'm not sure I've done like a line But I'm not sure if that's expressive enough if I look at the characters that I've done or My other comics I've done just a line But then also I've done like color around the lips to indicate where the lips are in some cases Like it depends how like zoomed in on their faces. They are this is kind of her at the moment I'm pretty sure that's not her because Yeah, this is definitely looking more Like the character I've visioned I was a little high now, but I think that kind of works I was would not be like so okay. This is looking messy, but I'm gonna go in with Also, if you're new here, this is gonna be a horror comic Lots of people tell me and I like Like how does that style correlate to horror and I really I kind of like The way that it doesn't really fit if that makes sense like it's too It's kind of cutesy my style and textured and they're out there so sometimes people don't think it works, but I really like the the juxtaposition to use a big word and like Using these cutesy styles with horror Like the way that I drew like her body shape here Where it's kind of just like the limbs are really thin. Maybe we can give her like chunky pants. I Really like that body shape, but it was a shame that I just drew it way way too small. So We've got the idea now of what we want a bum bag action. Is that a bum bag? Don't know Let's do slightly longer legs I feel like once I get some color down and then when I go over the lines a bit better with Pencil I'll use then I feel like it will be It's not looking awful, but it's just it feels the head and the body feel a little bit disconnected So I feel like like maybe we should make her a bit more cartoonish on the body so now I'm just gonna rub out the lines a little bit and Let's pick some colors. I mean, I kind of like it like when you can see the rough Pencil lines underneath and also we we need to remember that this is just Clearing the brain cells and like trying to get them to figure out something like who is this person and What would she look like? You know, so it's not gonna be perfect But with each drawing I feel like we get closer to figuring out puzzle pieces of who this character is and You know These are kind of the colors. I'm thinking um ignore the lights It's just because sometimes maybe they look darker when you put them down And then you can also lay a color so I'm thinking what I'm gonna do is test out the swatches of these up here and See what they look today I'm using a who-who markers and they sent me a massive like load of them if you wanted to see My opinion on them. I got another I've got another video on my channel. That's way too bright, but let's just see It's way too bright as well. These are really nice because I really like using brush pens and I feel like This this is a nice color, I think this might be the one What is this e 11 10? I'm just gonna note that down because I never noted down. I Just said e 11 10 110 I Never note down the colors and the next time I'm like, what is it? It's kind of nice Yeah, okay I'm feeling that I'm feeling that Kubo. What are you doing? What are you doing Kubo? No, I don't walk on my drawing So let's go let's start coloring and seeing what this looks like Okay, okay, okay seems like we're getting somewhere. I feel like this Designs are still too dark, but Okay, so I said this a million times, but maybe you're new here. I like to use dark colored pencils over the top for the line work and I'm using today a Faber-Castell Polychromos pencil, which I absolutely love to use And we're just gonna go in because I absolutely love like the texture of these So we're just gonna go in and try and emulate the lines That I did underneath already Okay, so that's kind of what she's looking like. I don't know if I've made her head too big Also, I want to give her like cheeks as I always do Hey, so I like the way that this character came out And so I'm gonna draw like I'm gonna get some what's it called reference Remember the name it I've got a nice reference here that I think she might sit in so I'm gonna try draw it But with this character if that makes sense I'm just gonna rough out like the shape of the pose and don't forget like if you're drawing from real life to just kind of remember that When you draw the negative space should be the same as the image So in this image you can kind of see like this kind of shape here So I know that that's how far away from her body. It should that arm should be It's a sharpness pencil Yeah, this is kind of probably like a more realistic pose then this character design I've done here, but I Feel like there's more to her here even though it's less cartoony. I feel like I Don't know kind of resonating with the character a little bit more Although I do feel that she's coming across younger than maybe she is I don't know. Maybe she's like 25. So I feel like she's coming across as a bit of a teenager. Maybe Which I don't really see for her. So like I said every like drawing that you do of your characters It's just like a step closer to Understanding what they don't look like and who they are actually what I'm gonna do is yeah But the colors here so I can remember This is like her cheeks, you know little stuff I mean obviously this stuff can all change still because we're still in like the Fun stage of just experimenting seeing what works what resonates and Yes, just seeing how we feel about this Direction I feel like yeah, I'm definitely drawing her a little bit too young But also I guess it would work. She's a different generation to me. So Okay, so I've got the face You know, I don't want to do it too big. Yeah, I'm really trying to exaggerate this jumper a little bit Yeah, like this stuff this one for sure feeling like it's more her Don't know. What do you guys think so far? So let's try and color-hitting. Okay, and I like this blue I feel like this blue is gonna work for her jumper Yeah, so the jacket is like crazy oversized, but I think it's really cool. I think it's working Cool, okay, we're getting there I feel like we're getting there with this character. I feel like I'm seeing her And we've gone from like this to this so I think it's working Yeah, definitely liking her What do you guys think so far like what do you think of the character? Do you think she's resonating with you or do you think it's not working? Let me know. I would love to know your thoughts and feelings about how this comic is going And like I said, if you have a name for her, let me know. Maybe you'll be the one to name his character Could work could work guys But yeah, I think I'm gonna call it for today But thank you so much for watching and I hope that you kind of like this Style of video of just explaining the character design and what I'm doing and I will probably keep Like going with this so let me know if you want to see more and I would love to show you more Yeah, thanks for watching and I hope to see you next time. Bye


Mainstream journalists are cloistered Ivy League educated trust fund kids Iraq war cheerleader David Brooks has an article in the New York Times titled what if we're the bad guys here Another one of those tired old think pieces. We've been seeing for the last eight years that asks golly gosh Could we coastal elites have played some role in the rise of Trumpism like it's the first time anyone has ever considered that obvious point The answer is yes. Duh you soft-handed silver spoon-fed ivory tower bubble boy One worthwhile paragraph about the media stands out though quote Over the last decades we've taken over whole professions and locked everybody else out When I began my journalism career in Chicago in the 1980s, there were still some old crusty working-class guys around the newsroom Now we're not only a college-dominated profession. We're an elite college-dominated profession only 0.8% of all college students graduate from the super elite 12 schools the Ivy League colleges plus Stanford MIT Duke and the University of Chicago a 2018 study found that more than 50% of the staff writers at the beloved New York Times in the Wall Street Journal attend one of the 29 most elite universities in the nation and quote Brooks is not the first commentator to make this observation about the drastic shift in the socio-economic Makeup of news reporters that has taken place from previous generations to now The class factor in journalism gets overlooked Journalist Glenn Greenwald said on the Jimmy dorsho in 2021 30 or 40 years ago 50 years ago journalists really were outsiders That's why they had unions.  They came from like working-class families They hated the elite they hated bankers and politicians.  Tybee said a Lot of them were kind of more working class Their parents were more likely to be plumbers or electricians than they were to be doctors or lawyers Like this thing where the journalist is an Ivy League grad. That's a relatively new thing That I think came out in the 70s in the 80s with my generation But reporters just instinctively hated rich people. They hated powerful people like if you put up a poster of a politician in a newsroom It was defaced instantaneously like there were darts in it Reporters saw it as their job to stick it to the man Mostly the job is different now Tybee said the fantasy among reporters in the 90s about politicians started to be I want to be the person that hangs out with the candidate after the speech and has a beer and is sort of close to power And that's kind of the model. That's where we're at right now. That's kind of the problem is that basically in the business People want to be behind the rope line with people of influence And it's going to be a problem to get us back to that other adversarial posture of the past This is a major reason behind the freakish sycophancy and empire loyalism. We see in the mainstream press It's not just the obscenely wealthy owners of the mass media who are protecting their class interests It's the reporters editors and pundits as well These are typically fairly wealthy people from fairly wealthy families who become more and more wealthy the more their careers are elevated as Insiders of the mainstream press have attested It's widely understood by employees of the mainstream media that the way to elevate your career is to toe the establishment line and refrain from spotlighting issues that are inconvenient to the powerful This identification with the ruling class feeds into the dynamic described by Tybee in which modern journalists have come to value close proximity to those in power These are the people they want to be sharing drinks with and going to parties with and invited to the weddings of The us versus them dynamic which used to exist between the press and politicians switched and now the press see themselves in the Politicians they fraternize with as us and the general public as them There are other factors that play with regard to elite education the number of journalists with college degrees skyrocketed from 58 percent in 1971 to 92 percent in 2013 if your wealthy parents aren't paying that off for you Then you've got a crushing student debt that you need to pay off yourself Which you can only do in the field you studied in by making a decent amount of money Which you can only do by acting as a dependable propagandist for the imperial establishment Universities themselves tend to play a status quo serving conformity Manufacturing role when churning out journalists as wealth won't flow into an academic environment that is offensive to the wealthy Moneyed interests are unlikely to make large donations to universities Which teach their students that moneyed interests are a plague upon the nation and they certainly are not going to send their kids The whole intellectual culture has a filtering system starting as a child in school. Noam Chomsky once explained in an interview You're expected to accept certain beliefs styles behavioral patterns and so on if you don't accept them You are called maybe a behavioral problem or something. You're weeded out Something like that goes on all the way through universities and graduate schools There is an implicit system of filtering which creates a strong tendency to impose conformism The people who make it through this filtering system are the ones who are elevated to the most influential positions in our civilization All the most widely amplified voices in our society are the celebrities Journalists pundits and politicians who've proven themselves to be reliable stewards of the matrix of narrative control Which keeps the public jacked in to the mainstream worldview? Is it any wonder then that all the sources we've been taught to look to for information about our world Continually feed us stories which give us the impression that the status quo is working fine And this is the only way things can possibly be Is it any wonder that the mass media support all US wars and cheerlead all imperial agendas? This is how things were set up to be Our media act like propagandists for a tyrannical regime Because that's exactly what they are


***If you'd like to keep up with everything I do, you can sign up for my newsletter, it's the Marlar Sheet. You can sign up at DarrenMarlar.com, D-A-R-R-E-N-M-A-R-L-A-R.com. So when robbing a liquor store, make sure you're not under the influence of that liquor first. Our brain on drug story is right around the corner. While speaking of liquor, a sure-fire way to prevent hangovers. Did you party hardy last night? When you wake up with a headache, nausea, extreme thirst, cotton mouth, you know you've got a hangover, right? And it's terrible.  Well, here is a 100% guaranteed way to prevent that from happening again. Are you ready? Don't drink too much. I know it's pretty obvious. That's a cold hard fact, though. If you drink to excess, you will have a hangover. You can count on it according to health day news and research from Utrecht University in the Netherlands. They say the more you drink, the more likely you are to get a hangover, says Joris Wester. He's a professor of pharmaceutical sciences, pharmacology, and psychopharmacology at Utrecht University in the Netherlands. So now here's a second cold fact for you. All those hangover cures, you know, from chugging lots of water to popping vitamin B pills, they don't work. They'll actually do very little to make you feel better. Hi, I'm Darren Marlar. If you want to like me, poke me, tweet me, follow me, stalk me, you can find links to all of my social media at darramarlar.com. Well, it's time for today's Brain on Drug story. It's about people doing dumb things while under the influence, but addiction is no laughing matter. If you or somebody you know needs help, there is a toll-free number you can call. It's 1-800-438-0308, that's the addiction, hope, and helpline, 1-800-4308-0308, while when robbing a liquor store, make sure you're not under the influence of it first. It's brilliant once again that there is no intelligence test to become a criminal. A Los Angeles gunman demanded cash and a bottle of gin from a clerk at a liquor store, but the clerk refused to give the man liquor until he proved his age, so the robber handed over his driver's license. Yep, the clerk memorized the man's name and address, and the thief was arrested. Hi, I'm Darren Marlar, and if you missed any part of the show today, you can catch up at darramarlar.com. That's D-A-R-R-E-N-M-A-R-L-A-R.com. So how do you keep people from using their phones while driving? I love this, they finally came up with a solution. Drivers have discovered how to stop drivers using their phones when they're behind the wheel without affecting the use of the passenger's phones. A team at Stevens Institute of Technology and Rutgers in New Jersey have created a system which shuts down a driver's phone without affecting other people in the vehicle. It utilizes the phone's Bluetooth connection and a vehicle's speakers to detect if the driver is using their mobile phone while driving. This sounds like a great idea, up to a point. What if the person in the back seat needs to make a phone call to the driver? And then what?  I don't know, what kinds are there? If you'd like to listen to past shows or follow me on Facebook or Twitter, maybe listen to audiobooks that I've narrated and everything else that I do, I have a free mobile app that you can download. It's available in your phone app store right now. Just do a search for Marlar House. Marlar is M-A-R-L-A-R. Search for Marlar House is absolutely free right now in your phone app store. So why does your bath towel stink? Well, it's not the towel, it's you. Skin flakes and body soil get left behind with every use, says Mary Gagliardi, also known as the Dr. Laundrie for Clorox. She advises washing a bath towel every seven uses. In between, spread it widely on a rack to avoid having it developed owners, she says, if you've got a persistent funk, that could be grimy build-up in your washer, so run some regular bleach clean-out cycles to keep your clothes washer stank-free. I'm Darren Marlar, if you like a written transcript of today's show, please call the number at the bottom of your radio. And now, another Useless Fat.  Huh. Maybe I should start doing this show with a laugh track. Well, ladies, if you just can't get enough coffee, there's a lipstick just for you. I'll tell you about that right around the corner. First though, doctors recommend eight solid hours of sleep each night. But workers, they're not clocking it in. This lack of sleep is leaving employees less productive. People motivated and more agitated with co-workers. So who is to blame? Well, believe it or not, the answer is work. Your job is to blame. A survey on sleep and the U.S. workplace from CareerBuilder reports that 58% of 32,000 workers surveyed said they weren't getting enough sleep, 61% said that sleep deprivation did affect their work, and for some it is a vicious cycle too. 34% of workers said that just thinking about work kept them up at night. Wow! I guess you could quit your job, but then you'd just be up all night wondering about how you're going to pay your bills. This is the Darren Marlar radio show, Audio Rewind. If you like scary stories, you might like my show Weird Darkness. It's online only, it's actually a YouTube show, you can find it at WeirdDarkness.com. Got our birthday wrap up coming up next, but first, ladies, if you just can't get enough coffee, there is a lipstick just for you. The cosmetic company Hard Candy. They have a coffee-flavored lipstick. Company founder Dina Mohair said the idea was women are drinking coffee in the morning and then putting on makeup. Well we thought we might as well combine them.  They currently have three different shades of beige. They have Caffeolip, Latte Lip, and Lipicino. You gotta give them credit for being creative on the names, don't you? They also have a red caffeinated color coming soon called Red Eye. Actually, I thought about this, this is a pretty good thing for the guys too, right?  Hey, more coffee? Jobba boy? Yes. It's coffee time. Coffee. Coffee, coffee, coffee, coffee, coffee. Caffeolip. Jobba. Yes. I've heard all emergency energy to my coffee machine. Whoa! I've got to lay off the coffee. Hotcha cha cha cha cha. No brains. Come and have a cup of coffee. Coffee can only make me nervous when I'm drinking. This is espresso, you know? It's like coffee's zilla. I'm gonna let you in on a little secret. Every day, once a day, give yourself a present. Two cups of good, hot, black coffee. I love coffee. I love tea. I love the job. I've taken the liberty of anticipating your condition. I brought you orange juice, coffee, and air springs. Or do you need to throw up? Oh, you look like a man who could use more coffee. This episode is brought to you by Theodore the Great, conservative crusader by Daniel Ruddy, narrated by Darren Marlar. Theodore Roosevelt has a complicated legacy. To some, he was the quintessential American patriot and hero, a valiant soldier and hawkish leader. Others remember him as the progressive cultural icon, the trust buster who split from the Republican Party. So who was the real Teddy Roosevelt? Daniel Ruddy's new biography cuts through the impenetrable tangle of misconceptions and contradictions that have grown up over the last century and obscured our view of a man who remains one of the most controversial and misunderstood presidents in U.S. history. Weighing Roosevelt's lifetime of actions against his sometimes contradictory progressive rhetoric, Ruddy paints a portrait of a man who led by undeniably conservative principles, but who obfuscated his own legacy with populist speeches by focusing on Roosevelt's actions and his effect on American history, Ruddy clears the cobwebs and presents a real and convincing case for remembering Theodore Roosevelt as a great conservative leader. Theodore Roosevelt, conservative crusader by Daniel Ruddy, narrated by Darren Marlar. Here are free sample or purchase the title on the audiobooks page at marlarhouse.com. There's a lot of really cool stuff that bounce dryer sheets can be used for. Other than freshening up the smell of your laundry, if you'd like to see a list of what people have suggested you can use bounce dryer sheets for, it is a long list. Well, I've placed it in my blog for you, you can find that at DarrenMarlar.com. That's D-A-R-R-E-N-M-A-R-L-A-R.com. That's me, by the way. I'm Darren Marlar. Welcome to the show. We all know that drinking and driving is dangerous, right? Well, almost as dangerous as thinking and driving. I'll have details on that coming up. When it comes to moms and daughters, the apple apparently does not fall far from the tree. A recent study by Hallmark Cards reveals that at about age 32 women find that they're turning into their moms, copying habits like worrying, stocking up on groceries, watching soap operas. And that's also when they begin to use the momisms, like what your mom used to say like, because I said so, or I'll give you something to cry about, well, according to behavioral expert Judy James, it's perfectly natural as you age to begin to act like the most important person in your life. And I know the story was about the girls, but I could see this in my life too. Every day I notice mannerisms in myself that remind me of my dad, the older I get, the more I am becoming him. On the windowsill, he stole mom's pie, threw it at her car, mom yells, would you do, I said.  Mom asks, why does he do silly stuff like that? I just looked at her and laughed and said, my son's just like me. My son's about living and giving a good nookie to his momma and riding the dog, yeah, my son's just like me, my son's like me. A man is literally stuck in a life of crime in today's moment of duh coming up. Hi, I'm Darren Marlar and you can hear the show anytime at DarrenMarlar.com. According to a new survey done by the American Psychological Association, researchers have found that it is almost as dangerous to think and drive as it is to drink and drive. They say even a simple task, just like visualizing each letter of the alphabet one by one while driving, that can cause drivers to fix their eyes on certain points for longer periods instead of glancing in their mirrors or at the dashboard like they would normally do while driving. Such dangers are likely as well if the driver just thinks about the concerns of his or her day. So let's say you get pulled over by the police officer for speeding then. What do you tell him? Do you say, gosh, sorry, officer, I just wasn't thinking? Or do you tell the officer, gosh, sorry, officer, I was just thinking.  Man, I see your driver's license, ma'am. Was I doing anything wrong, sir? You didn't come to a full stop at the intersection, ma'am. Be more careful next time, okay? Sure. You have a nice day now. You too. It's all the dull day-to-day monotony that gets cut out of all the other syndicated cop shows. The reason I pulled you over, sir, is because your right rear brake light seems to be out. Well, thank you, officer. I'll make sure I get that fixed. Okay. You have a good day now. Well, thank you. You want to get a few more laughs every day, I post a new episode of The Daily Dose of Weird News, and you can find that at DailyDoseOfWeirdNews.com. I'm Darren Marlar, the 60-year-old leader of a polygamous community in Canada has been found guilty of having 25 wives. Man, I would say time's already been served for this guy. He has been punished enough. That sounds like a moment of duh right there, but today's moment of duh story literally a man stuck in a life of crime in Israeli thief found himself literally stuck in a life of crime. During an attempt to steal a car radio, things went embarrassingly wrong for this individual. The thief was leaning through a car window in order to remove the car's stereo, but while doing so, he accidentally pressed a button and closed the vehicle's electronic windows, thus trapping himself. The car's owner, who was alerted by the crooks' cries for help, he had to rescue the thief, but of course not before waiting for the police to arrive. Money can buy happiness, but there's a catch. I'll explain that coming up here in just a few minutes. I'm Darren Marlar, if you'd like to be a part of the show, you can visit the radio show page at darranmarlar.com and you can send me an email for the email bag. The website is darranmarlar.com, that's D-A-R-R-E-N-M-A-R-L-A-R dot com.  Overall, according to the survey, 21% describe being involved in a dating experience that turned out to be just plain toxic. Although those numbers did calm down for a few short years while Charlie Sheen was married. Here comes the best part, the Darren Marlar radio show, a little bit more on the crazy side of the end of the world. In Charleston, West Virginia police, they knew there was a problem with drinking and driving during happy hour. Our brain on drug story is on the way. Welcome to the Darren Marlar radio show, if you'd like to keep up with everything I do, you can sign up for my newsletter, it's absolutely free, it's called the Marlar Sheet, you can sign up for it at darranmarlar.com. Apparently, money can buy happiness, but there's a catch to that. You gotta keep appreciating things that your money buys you, says Texas Tech University researchers. Just having a nice car or a beautiful handbag, it's not gonna make you happy in the long run unless you continue to value it after you've had it for a while. So how to maintain fresh gratitude for your not-so-fresh belongings? Well, at least once a week, take a moment to reflect on why you fell in love with that possession in the first place. And I was thinking about this, this actually is probably a pretty good idea the next time you're mad at your spouse, too. What did you, what about them made you fall in love with them in the first place? The Darren Marlar Radio Show! I'm starting to notice something about you. You're still here! Need a daily dose of weird news? Get it every day at darranmarlar.com. It's the Darren Marlar Radio Show, that's me, I'm Darren Marlar. A man in China who claimed he was abducted for two months, you know, kidnapped, he was eventually released by his captors because he ate too much. You know, maybe that's why I have never been kidnapped, I mean, one look at me and the criminals would have to know they just can't afford the food budget. What do you down sweets? Eating as much as an elephant eats. What are you at getting terribly fat? What do you think will come of that? I don't like the look of it. Welcome to the show. It's time for our brain-on-drug story. And when I do this, it's about people doing dumb things under the influence. But addiction, it's no laughing matter. If you or somebody you know does have an addiction, if you need help, there is a toll-free number that you can call. It's 1-800-438-0380. You might want to write that down. If you know somebody who is having a problem with drugs, alcohol, it's 1-800-438-0380. That's the addiction, hope, and helpline. 1-800-438-0380. Charleston, West Virginia police, they knew there was a problem with drinking and driving during happy hour, but they never imagined their daytime sobriety checkpoint would net four drunken driving arrests before 8.30. Police conducted the happy hour sobriety checkpoint near a moose lodge beginning at 4 p.m. And the department issued 32 traffic citations and arrested a fifth person for driving on a revoked license for a previous DUI. Two people arrested for drunk driving attempted illegal U-turns before arriving at the checkpoints, but they were quickly stopped by police too. The first drunken driving arrest was made just 20 minutes into the checkpoint at 4.20 p.m. So as a police spokesperson, this confirms our initial belief that, yeah, there is a problem. I'm Darren Marlar. Welcome to the Darren Marlar Radio Show. If you missed any part of the show, you can catch up at DarrenMarlar.com. All right, the art of old-fashioned letter writing. I mean, that's almost non-existent these days, isn't it? Who writes letters anymore? Well, a 28-year-old poet, Jody Ann Bickley, she plans to write one million letters. The letters are going to go to people who need a bit of advice or help with something in their life. Well, she would know she's overcome her own suicidal tendencies. When she was 23, she was bitten by a tick and developed encephalitis, which is rare. That only happens about one in every 200,000 people who are bitten by a tick. Well, that led to a stroke, resulting in her being paralyzed on one side of her body. However, she told herself to write again, and her project, One Million Lovely Letters. It is the continuation of this. She's been writing letters and notes to strangers since she was just 11 years old. In fact, you can email her if you want to, and ask her to write a letter to you. And I've got her email address in my blog, if you want to check it out, at darwinmarlar.com. But you better be patient, because she probably has quite a lot of letters to get through. On her website, Jody says of the project, to every other person on the planet, I'm going to write you a letter, a letter just to make the day a bit better or to remind you of the bloody amazing stuff about you that you've forgotten, because we all forget once in a while. My question for her though is, where is she going to get the $500,000 or so that she's going to need for stamps? Good night, ladies. Good night, sir. Hit it, sweetheart.


Hi everyone, Joe for Jaspy's casebreaks.com coming at you with 2019-2020 Panini Mosaic Basketball. Ten box break. Five hangers and five megas. This is random team break number four. There's also an early bird, an all-card ship, also an early bird special. You got Nick Jaspy right up there, he's going to help pack stack. So thanks to the early birds here, first 15, and he's going to start ripping open the packs right up there on the camera. First 15 have a chance at that early bird spot. So let's pop you in here, let's roll it, let's randomize it, eight times. Name on top gets the extra spot. The early bird catches the worm after eight, seven, and good luck, eighth and final time. And it's going to be Joe Parisi, nice. So congrats to him, after eight you get the extra spot. And Jeff had that last spot mojo here, there's Joe's early bird spot designation. Thanks everyone else for getting in, appreciate that, all those basketball teams. All 30 basketball teams are in. Let's roll it and randomize it, nine times, five and a four. Your names first, eight and ninth and final time, after nine. We've got Barry Roberts down to Fred Schultz, and five and a four, nine times for the teams. And ninth and final time. After nine times we've got the Boston Celtics all the way down to the trailblazers. All right, so Barry with the Celtics, Anthony with the Kings, David R with the Sixers, Derrick M with the Bucks, Jeremy with the Nuggets, Obadiah with the Jazz, Gabe with the Magic, Stephen K with the Hawks, Derrick Rockets, Jeremy with the Knicks, Fred with the Spurs, Alexander with the Raptors, Breton with the Pacers, Ian with the Cavs, Daniel with the Pistons, Derrick, E with the Heat.  TJ Leonard with the Wizards, Breton with the Warriors, Drew with the Pelicans, nice Zach with the Hornets, Joe with the Thunder and Fred with the Trailblazers. Let's alphabetize by team, and we'll give it a few seconds for trades. Kings up for trade maybe? Anyone else? All-Card ship. All-Card ship as well. USA goes to the team there, played for the longest. Played for the longest if they're retired. So Barkley will go to the Sixers, Scottie Pippen's Bulls, Kevin Durant is Nets, Utah for Kings, Nuggets, otherwise we'll roll. Magic up for trade? Trade chatter. You're almost done. Amazing, we'll give you these two as well. Holding on the Kings. Trade window going once. Got a lot of breaks backed up, folks, so a little bit shorter trade window than normal. Trade window going twice. Wait, let me rip one. Oh man. Trade window extended. Trade window extended. You need a real knife? You're using a staple remover? Wow. Michael Jordan flu games. I mean, how many breaks are we selling out? We can't buy a new blade? No. Wow. With the blade budget, Joe Jassy getting paid too much? Too much of the payroll? This is all five hangers? Yeah, I think so. All right, now people are holding now. All right, let's just close it. TWC, trade window closed, let's print and rip. A lot of trade chatter, but no deals were done. Another one's in the store already. Early bird entries. With plenty of EBS, early birds.  All right, I know I'm playing injured today, folks. So here is the, and these are all the five hangers. All right, there are nicks opening up the Megas on the camera above my head. There's everyone right here. Thanks everyone for getting in. This mosaic stuff has been pretty hot. All card ship. So everything here, most ship, especially these. Now these aren't numbered, but they are. These are the parallels. So these will carry a lot of extra weight as well, especially if it's the big rookie names. That insert's here. You got Kauai Leonard. Are any of these numbered? Nick, do you know? Do you know? I don't think so, right? I haven't hit a hanger. I think you did the Megas, but I don't know if there's numbers. Nice RJ Barrett, Magic Johnson, John Morant. RJ Barrett again. Maybe in or out on that Grizzlies uniform where they say Vancouver. Or no, did they put Memphis on it? I kind of like it. But it's the Vancouver Grizzlies. I like that aqua color. I don't know, I just feel like if you left the city, you probably shouldn't just be wearing its old uniform. That's a little offensive, yeah. Like imagine if O.K.C. started wearing Seattle supersonic stuff, Seattle fans would just be like, all right, so maybe I don't like that as much. It does say Vancouver on it, maybe it does. I think it does. No, yeah, then I'm out on it. That's not cool. I guess the Dodgers, do they wear Brooklyn jerseys on it? Probably not, right? No. I think they sell the B hats, the Brooklyn hats, like on the official team store. Yeah, yeah, yeah. But no, I don't think they ever do like a throwback jersey day where they do that. I think these are one of the more shorter printed ones. This might be those Genesis ones right there. Remember, all card ship. Definitely those rookies. Definitely this Yanis right here. MVP, Genesis. That's pretty nice. Bucks, that's going to be for Derrick. The Gris, by the way, is Ryan Redman. So he got all those John Morance, those two or three John Morance, and then the Jeremy Plemons with the Knicks. All right, so those are your hanger boxes. I think those are all the Megas right here. So thanks, Nick, for popping those open. One, two, three. Oh, Van Vliet, what are you doing? And five, nice. Okie doke, let's keep going. Is that Julius Irving aside? Wow, that Yanis Genesis sold for 4.25 yesterday on eBay. You pulled the Yanis Genesis? Derrick Molansen with that one. Yeah, that's right. I need a photo of that. Specifically that MVP, yeah, that MVP version says Derrick Ewing. I mean, really a lot of these cards are going to go for surprising amounts, folks. 10, 15 bucks, I don't know. I mean, probably the base rookies, even the scrubs would probably go for like 5, 10 bucks, right? I saw a hero variation, not that he's a scrub, but mid tier, probably 15, 20 bucks. So like scrub 5 bucks? Yeah. I'll take that. Scrub rookie 5 bucks. Was it Astros or, no, Dodger's Red Sox. That was like 2 a.m., West Coast. That was crazy. There was one game like that. There was one game like that in, it only went 10-ings, but remember how both teams scored, both scored like 25 home runs? Yeah. Jordan Clarkson. Got game, Nicola Jokic. So these are all the mega boxes, of course. A little bit taller stacks. James Harden. Mofondou Cavinelli. Base RJ Barrett. Another one for the Knicks. Another one for Jeremy Plemmons. Balanchunis. Base John Moran and RJ Barrett. Looks like they're paired together. There's Jokic. And obviously these will be top loaded before they go out. So will all these little parallels here. Ooh. There is a special numbered card. 6 out of 10, Kyrie Irving. Pink. That's for the Nets, Josh Melton. I was saying we don't see a lot of low numbered, we don't see a lot of numbered cards, but here's one. 6 out of 10, Kyrie. Nice Luca Donic, Paul George. Devin Booker. Lonzo Silver. Jordan Pool. Anthony Simmons. Evan Fornier. Oh, is this where Dave Roberts sealed those steals of the base? Is it that Yankees Red Sox game? Al Horford. Kendrick Nunn. Terence Ross. Luca Samanich. Jared Jackson Jr. And another, wow, RJ Barrett. 10 out of 10. Ooh. What does that go for on a secondary market? A lot of them are these non numbered short prints, but to see a pink RJ Barrett, 10 out of 10. This is the Dave Roberts stolen base game. The next one should fly. At this rate. Wow. $500 Yankees. That goes to Jeremy Plemons and the New York Knicks. There you go, Jeremy. Is it like a... It's NBA debut. Yeah. RJ Barrett. I don't know what that goes for. There's Hamidou Diallo. I think he still has a lot of upside. He does. I mean, huge mark. Huge trash. Huge market team though. Like if he does like a little good, like the city of New York will just go nuts. Yeah. And all the collectors. Yeah. People still love the Knicks out there, believe it or not. There's Clyde Drexler. That's number to 99. So I guess the Megas have the number to climb. Seems like it. Hangers could, I guess, but it just doesn't seem like we've seen any at all. Another RJ Barrett and another John Moran. Dylan Miller driving in. Driving in Dave Roberts. Danilo Gallinari, LeBron James, Garius Garland. There's a bit of bend to these cards just naturally out of the pack.  All right, Aaron Gordon, Cody Zeller, Kevin Huter. There's no other, no other pink RJ Barrett's out of Mosaic. So maybe Jeremy Plemins can set the market on that. Gaius Jones. And the last one coming up. So there are, there are pinks without numbers. And Mosaic two sold out, or Mosaic number five is sold out already. Nice. That's, Nick will be able to tackle that. More jumped. Wow. Ryan Redman, all those Jama Rants, they're all adding up. There's a couple NBA debut Jama Rants. Josh Hart, Carson Edwards, Silver, All-Cards chip. Remember, Eric Pascal, Nikola Batum, or Greatham, Derek. Yeah.  There you go, Palakins, in case we were worried, Drew Panter. What's close to filling, Neil? Everything is close to filling. Just go to jaspyscasebreaks.com. We're already booked for another couple hours. So get in before we run out of time. Hurry. jaspyscasebreaks.com. Seja McCollum, LeBron, James D. Wade for the Heat. Karim Abdul-Jabbar at the end. There you go. Wow. What a Mosaic break, ladies and gentlemen. Some excellent stuff here. We got the Zion NBA debut, the pink RJ Barrett 10 out of 10, the Yanis Genesis Super Short Print. They're a stack of Jama Rants and RJ Barretts. What a great break. All right. Am I giving away anything here? No, we just did the early bird. That's it. Awesome. So there's another one in the store, and apparently it's already filled up. So that'll be later tonight. Thanks for watching, everybody. I'm Joe. I'll see you next time for the next break. Bye bye.


Welcome to this talk on bootstrapable Debian. I'm Wookie, just in case you didn't know that. This talk may be slightly random because it's a little bit complicated and I'd like to think that I can explain to you how this all works without being terminally confusing. So, this is about various things. Bootstrapping is when you need to make a new architecture, fundamentally. That's the main use case in Debian. If you wanted to actually build everything from scratch, how would you go about it? It's actually very hard because of the way our system is always built on what we already have, so there's no requirement to build it all from nothing and, in fact, you can't. So, this is a real problem every time we start a new architecture. So, I'll talk about that, why that's a problem and what we might be able to do about it. Fundamentally, the problem is cyclic build dependencies. You can't build this because it needs itself, or at least there's a loop of things such that it needs itself. I've done some analysis on exactly how big a problem that is in Debian and Ubuntu. And, strictly speaking, bootstrapping the architecture is nothing to do with cross-compiling. It's fundamentally independent of that, except that, in practice, that's the only way to do it. So, the two subjects are highly intertwined. So, I'll talk a little bit about that at the end, just what's going on. I've been doing this work, essentially, because of Leonardo. It's actually quite a long way down my list of things I'm supposed to be doing. So, I'm not really supposed to be worrying about how hard it is to bootstrap Debian. So, anyone who wants to help will make things move along much quicker because people who give me lists of things to do put this one down at about number six. Nomenclature's a problem. For those of you who aren't familiar with cross-building, the GNU names are terminally confusing to anyone who doesn't know all about it already. Build is the machine you're actually building on, and host is the thing you're targeting. That's not the same as target. Confusing, isn't it? I'll try and use the correct terminology throughout just so I'm not confusing. Also, deciding how to do this so that it makes sense to package maintainers is tricky. It's important that the terminology of whatever gubbins mechanism we come up with makes sense to a random package maintainer who's got to read it in their packages. So, I've used in the documentation about this both staged builds and bootstrap builds for the same concept. So, those mean exactly the same thing, and which it should be kind of up to you guys, which seems most useful. Staged is already used in some packages, most noticeably GCC and the bootstrap builds. For a while, I thought bootstrap made more sense, but the problem with that is that it means six other things as well. So, actually, I've kind of changed my mind and gone back to staged builds. When talking about dependencies, there's actually two sorts of dependencies. There's build dependencies and what we call dependencies. But I shouldn't use the term dependencies at all here. I'm going to talk about install dependencies, because otherwise everything I say will appear to be nonsense. It's important to distinguish between the dependencies you need because you need them to build and the dependencies you need because you need them to install. So, as I said, strictly speaking, you can bootstrap without cross building, except that in practice you can't, because you've got to build at least the tool chain. And then once you've done that, you might as well build a few more things cross and so on. And there's an interesting question about how much stuff you should build cross before you call that a native system and build the way we normally do.  People take different approaches in different ports and there's different trade-offs. But there's always some. So, that's what makes these two subjects closely related. There's a concept of the set of things which, you know, you have to produce as if by magic from somewhere. That's pretty much the tool chain and some base packages and any language which depends on itself to bootstrap.  So, you can't build Mono because you haven't got Mono yet and so on, and Haskell and all of that is all terrible. So, there is a set of nodes, effectively, from which everything else is built. In theory, building all the packages in Debian is a tree. The problem is that it's all wrapped around in loops. We don't have good tools to identify what the set of things the canonical nodes are yet, so I'm not sure. I know what some of them are and there's probably some more. So, what do we care about this? I guess I've already mentioned that the main reason is anybody who needs to make a new architecture. We kind of think, oh, that doesn't happen very often, but actually, it happens fairly often. I think they've been about 17 so far, so basically, we do this every year. The most recent, obviously, has been the RMHF bootstrap, which has effectively been done twice, once by Konstantinos, who pretty much did it all native and again recently by Sledge, who crossed most of the base system. There are other uses for this, though. If you had this technology working so that it was actually possible to disentangle all the build dependencies, it makes it much easier to do an optimized build. If you wanted to build everything for Neon in ARM world, in theory, you could use your existing packages to do that, but you're never quite sure whether that's actually going to work. So, in some ways, there's something to be said for starting from scratch and building it all like that, then you're sure you haven't got random bits, which are old-style. If you were pulling packages out of Army L to build your new thing, you might end up with a bit of a mix. It was pointed out to me by whoever it was that recently bought the M68K, or has been working on bringing M68K back up to date, basically that's now a cross-built architecture. They don't build it native anymore or not most of it. For them, they have the same problem of cyclic dependencies. There's also architectures we might want to have in the future one day which pretty much can't build themselves because they're too weedy. AVR32 is a good example. And it just seems to me fundamentally that this is the universal operating system and it's slightly embarrassing that you can't actually make a new port without Gintu or open embedded or something in order to get started. That's how Konstantinos got RMHF started by using a Gintu-based tarball and then building enough Debian stuff on it that you could boot into that and pretend you'd started with Debian. It works, there's nothing wrong with it, but I just feel that we ought to be able to do this more correctly. So, as I say, people use, so the Army-L build was done with Angstrom. Yes, please, interrupt me. Microphone. Technology. Anyway, my point was that I've seen recovery of broken upgrades completely fail because of cyclic dependencies. So if you have an upgrade that's triggering a full disk, cyclic dependencies make it impossible to automatically recover. You have to do manual hard forced installations of some packages to get going again and that's because we have cyclic dependencies. The package system will just break the upgrade in a random position and the resulting systems will be inconsistent and very, very hard to recover. So it's not just a nice thing for some setups. It's a day-to-day problem when you run into full disks. Although you're talking there about cyclic install dependencies, which of course is slightly different from cyclic build dependencies, although they are, as I've explained in a minute, surprisingly tightly related. Just a comment. I've boosted up a few architecture in the past and now still again and the situation is getting worse and worse. Today, for example, for installing developer, which is the minimum, it depends on main page and for main page, you need basically Xorg, you need Qt, you need GTK, PHP, and just because there are a lot of Python bindings, per bindings and all of documentation building. Yeah, it's true. So, yes, it's hard work for a lot of reasons. At the moment you take your package, you just keep removing bits until you can build it without all the stuff you didn't need until eventually you've got some packages you can run, enough to call a system. But still, you need to build hundreds and hundreds of packages until you've actually got all the doc packages needed for many perfectly boring builds, because you need the whole of tech, or the whole of Qt, or the whole of something. So, the most we can minimize that, the better. Just mention xDeb here, which is a handy tool for cross-building things. It's relatively painless. Steve found that using that for the RMHF bootstrap was actually relatively painless for the base 112 packages you need for the bootstrap or something. There's actually only a few cyclic dependencies in that bit, I think. So, the reason why this is a more tractable problem when you're cross-building than when you're native building is that all the stuff which is just doc tools, tech, and anything which is just a tool, you've already got a version of that on your build system. So, you haven't got to build tech before you can build anything with a man page, or graph, or whatever. If you're doing this natively, you have got to do all that stuff, or stop all the docs being built. So, the cross-case is basically where I've been concentrating my analysis. You could do this again properly for the whole archive natively, and that would also be interesting, but that's not what I've done when I look at a slightly more tractable problem. So, in fact, if I get the right pictures... So, here's a good example of a fairly typical build dependency tree. You go, let's find out what the dependency loops are in this package.  Well, that hasn't really told me very much, has it? Well, it's told me. They're true. You all think it's a tree, don't you? You always thought it was a tree. It isn't. It looks like that. It's horrible. And actually, that's been post-processed to get rid of some of it. That's ghost script in a maverick, which is particularly bad. Now, Jonas, I don't know if he's here, actually fixed it, so it doesn't depend on a million things, and in fact, it's dramatically improved already in squeeze and in natty. But that's the sort of problem you have in even trying to analyze the problem. What should we look at next? So, what I did, so here we are. This is a more tractable tree. So, this is one which actually you'll find comes up hundreds and hundreds of times. This occurs about 600 times in the base of maverick, for example. Now, this is more or less what's Morkin was doing earlier, but this is the free software version, even that sort of thing over here. So, within that loop, there are in fact several loops, as you can see, that's not just a loop, it's several, but a common problem in practice is poplar. Poplar depends on some bit of QT in all the display things, which means you need to build QT, and that requires LibOdbC2, which needs GTK, which needs CUPS, which needs poplar. So, that is absolutely typical of the problem you get. And because, in fact, within this set of about 20 things is an awful lot of popular stuff, like GTK, and QT, and Arts, and CUPS, and Pulse Audio, and Blues, and GComp and Glade, it's very easy to get into this loop, which is why hundreds and hundreds of packages use something in here, and as soon as you use it, this is a problem for you. So, if I just show you, so, yes, how do we get that tree, tree loop? So, I use DexDeb because that understands about build dependencies and install dependencies in a way that Deb Tree, the other obvious tool for doing this, doesn't really. So, you go with DebTree, that's the right thing, isn't it? And that produces some interesting graphs, but it doesn't have this thing about something depends on a library, and that library requires a particular source package, and as soon as you need to be able to install that source package, you've got to install all the things which, so you need to build that source package, and then you need to install whichever library was you wanted, and therefore you also need all the things that that library depends on. So, although about build dependencies, in fact there's one level of build dependencies, and as soon as you install anything you suddenly care about all the install dependencies of that particular binary package as well. So, a lot of the time you care about both these things. And DexDeb actually does a reasonable analysis and understands which architecture is which, and therefore when some of them don't apply. The problem with that is that it produces graphs that look like this. And you go, oh dear, this is a bit of a mess again, isn't it? If I get my buttons right. And you go, oh dear, yes. Hmm, okay. Right, yeah, this still isn't really helping me understand the problem as much as I'd like. So, that's GnuPg. And you go, right, well I didn't help, did it? So, what you need to do is find out the set of stuff that you actually care about in there. And it turns out that the dot tools are marvellous for this. There's a thing called SCC map which is the strongly connected set. And that's the set of stuff which is actually connected back to itself again as opposed to all the bits which really are trees and nodes and sticky out parts, because you don't care about those, they're easy. So, you fit it through SCC map. So, we added to DexDeb the ability to spit out effectively the dependency set, dependency graph that is found in dot format. You feed that through SCC to throw away all the bits that stick out sides. And then we feed it through a couple more handy scripts as this GVPR which is magic set foo which basically means you can colour in the packages which are source packages and you can make them round or square and you can say, oh, there's 15 different lines to that package. If we go back here a bit and find one. So, you can see in the middle there there's a lot of these that have got about 12 lines, this has got like 407 lines between two packages because that dependency happens a lot and you don't really care about that, you just want to condense that down to one and then in fact we added a number to it to say how many times it occurred. So, after you've run through all that and processed it, you end up with something like this which is so this is a post script file which shows each of the separate loops within required by that package so a green blob is a source package and a square blob is a binary so that source depends on this binary and to get that binary you have to build that source and so on and we do actually have different shades of green according to how many things depend on it which gives you a clue as to how many packages you have to fiddle with so it turns out if you do this so I ran it on all 1500 packages in Ubuntu and about half of the $20,000 in Debian before I got bored that you end up with the same ones over and over and over again which is good, our problem is slightly reduced in complexity there so these are the typical cases, so there's this QT Cups thing Kerberos, an open LDAP and something go around in a little loop of five Lapac and Atlas depend on each other that Glib one is thoroughly unimportant I don't know why I wrote it down, WebKit happens quite a lot and in recent stuff, object introspection has read it's even ugly ahead and suddenly appears in hundreds and hundreds of packages whereas it didn't I think it doesn't in Natty but it does sorry it didn't in Maverick and it does in Natty it didn't in Squeeze but it does in Weezy I believe that's correct so here's some actual numbers just because we like gratuitous statistics so I ran through 9200 odd packages actually I'll just say how I ran through 9300 so if you look in the XDED package, if you download it there's an examples blah directory which has got a little script called find cycles which essentially runs this stuff and has all those scripts in it so you don't have to work that out again because it was horrible. I should point out at this point the guy who did the heavy lifting on all that graph work was Jonathan Austin I've just stolen his very fine work and used it so yeah so out of 9000 packages 2200 of them have some sort of build depth loop in them 24% nearly all of them have got this glib2 and gammin thing that's about to disappear because I think gammin is almost extinct and I hope that's just will suddenly evaporate but in the meantime this object introspection problem has turned up instead which again happens nearly everywhere the poplar Kerberos thing so that's actually two loops, poplar and qt and cups and there's Kerberos and open held up and something but in fact they've merged together in more recent packaging because of changing dependencies webkit and libsoup happens a lot this lapak thing rpm, I forget what it is it's rpm something something maverick and natia fairly similar I just analysed the main set which is rather smaller and a bit more tractable it doesn't take very long to run the xdev generate thing on each package but you know it's maybe 30 seconds or something each so to do 10,000 takes a while so what are we going to do about this the way to make to build all this stuff most of the build dependencies in these loops basically don't matter it's because we build our packages maximally to include all the possible functionality if there's a handy little script that does something qt-ish or there's a little ui piece we build that but the things that depend on a package don't care about all that fluff they only care about the core functionality so actually when Kerberos depends on an open held app actually Kerberos can be built without open held app thereby breaking the loop so what you have to do is modify the packages to build reduced versions staged builds or bootstrap builds and so the question then comes down to what is the best mechanism for doing that terminology as I say is a bit of a problem there aren't most of good words we haven't already used for something but I've settled on this after a certain amount of thinking for the work I've done so far so what you do is add a new dependency list to a new build depends list just in the package next to the existing one so instead of the normal build there's build depends stage one almost all packages only need a stage one I think the only thing I know of that needs a stage one and a stage two is the tool chain build where you build the really and that may be true for some of the language bootstraps as well where you've got to build a mini language and then that builds some libraries and then you can build the real thing so basically you set an environment variable to say or build options interesting question of exactly again what the best mechanism is I reckon sticking it in build options is probably most sensible because this is fundamentally a different build much like not running the tests or whatever and make sure all the tools recognize that so that they'll use the modified build depends list and then the rules file will not build the bits you didn't want that weren't necessary so you get a modified package now it's quite important that we don't go uploading those modified packages to real repositories so you need a bit of marking on them to say a wuga this is a horrible modification for getting bootstraps done the microphone wanted down here but hello this one works this is working thanks for that so I'm just thinking about whether they shouldn't be uploaded but why I mean the package as it should work it just doesn't provide full functionality so it might be a time in boot it might be useful to share these of course they need to be replaced before going to testing, stable, whatever but what is the issue for example to upload those to experimental and I can see someone wanting it to answer I'm a bit short in precise examples but I believe that there are cases where the staged build is sufficient for working your way around the loop until you can get to a proper build it's not necessarily sufficient for building everything else and I think there are a few cases where if you build things outside the loop with one of your staged builds they'll accidentally leave out bits and you'll never know I was thinking that we probably just wanted you do want a repository of these things there's a complicated sequencing bit which we'll get to in a minute about how many things you build based on the modified package rather than waiting for the real one I'm interested to hear are release chappies consider the possibility that uploaded them might not be total craziness so so if we're going to modify all those packages in order to be able to do bootstrap builds or staged builds you know how many are there having looked at the loop set it's not that many it's quite difficult to work out when staring at this how many actual changes you have to make to make that into a tree structure that's not an entirely trivial question you know how many loops is that some is the answer but I don't think so as I say although there's thousands and thousands of instances of depending on a loop there aren't very many loops actually and most of them are actually coagulated into that big lump of 20 or 25 depending exactly which distro you're looking at so once you've chopped all that up with maybe 10 cuts so I don't think it's a very large number of packages affected which is good and the patches we need to make on the packages I've done so far not too ugly so I think this is a maintainable thing to do it for the native case where you've got to get rid of docs everywhere at least is more intrusive on the other hand if we just have a Deb build-ups, no docs which is actually honored everywhere that's quite generic it's also useful for other things like embedded work and probably does most of the job here is it working? for the documentation part it's also probably a lot of packages can move the documentation building to building depth so we don't have the dependency there to complete the documentation from the libraries to a common package and still also there is a lot of package to fix that are building the documentation in any case even if you build only the arch package even if it's not in the final deb so probably there is a work to do there without going to the no doc option yes it's a good point if we actually make the build in depth thing work then that separates out the architecture independent stuff at build time so it's easy to do part of it and that will reduce our trees not trees I'm going to stop doing that graphs enormously so here's an example of the sort of patch you end up with this is Kerberos 5 stopping it using LDAP so it's quite easy in debhelper there's this marvelous thing I didn't know about till I tried this of dash-capit-len package name she basically says don't do that package throughout the whole set of debhelper commands which is great there's actually this little wrinkle which wouldn't fit on my slide which means actually you have to modify a few more lines with plus i and plus a because dh options are used for more than one thing which is a little bit ugly but basically that's all you need to do change the configure options ignore a package so it doesn't get built and a little bit of jiggery-pokery for not moving around some files that don't exist and similarly for popular is a CDBS package where we can still use dh options so there's more dash-capit-lening and more configuring and you're done so that doesn't look too ugly and evil to me I think that's the sort of thing we could probably sustain in a set of packages 40 or 50 in order to have this actually working in useful as well as modifying the packages to have staged builds reduced builds you want some tools to do this for you because it's hard work staring at all those graphs working out which thing to build next that's the thing we're missing so you need to analyse the tree or the graph and then when you find it's got a loop in it you go have any of these packages got a staged build I can use to chop the line and turn it back into a tree if so do that build so just deep package build package deb build options equals blah when you've done that you can then build the other things in the loop that depend on it and then you can rebuild a normal build of the offending package so I have a GSOC student Gustavo Elkman who's been working on this he's discovered that it's quite complicated it's a hard GSOC project so I'm not quite sure how much actual tool we're going to get because I think we're finished in about two or three weeks time but we have started on this project of generating a handy tool we might end up sticking it in xdeb for now as something that has most of the right infrastructure already the problem with this is that we don't use it very often I mean okay we do a new port every year or so but package maintainers are not habitually going to be building their packages with staged builds so it's the sort of thing that will get terrible bit rot because one of the things we've done is reproduced list of build dependencies you've got build depends blah and then you've got build depends stage one which is the same list exactly with one package missing or something I did think about syntax that just said accept foo but the problem is that sometimes it's an alternative and not an exception you could invent some new syntax but then you've got to change all the tools to understand the new syntax whereas if you just reproduce it slightly different you can do it to the tools exactly as is and it's very simple and I can write the patches so you said you could write a said script which would generate the change set of build dependencies but that's because he's an evil man so I think it's quite important actually that we have some machinery trying the staged builds packages that have them to see whether they build and filing failed to staged build from source errors somewhere or at least a website so you can check current status so if anyone wants to help with that that will be marvellous because like I say I'm not supposed to be doing this I would expect that most of the problems there will be some problems with in the rules file or whatever but I would expect that most of them will be graph re-untreeing problems the tree will change, the graph will change shape so suddenly a new package becomes important and has to be modified too so you can once you've got to the point of doing the graph analysis entirely automatically then you should be able to spot a lot of the problems entirely automatically without having to go through a full reboot strap order build to discover it so we can start off with a fairly simple mindless thing that just builds the ones we know are an issue but at some point we actually want to analyse the whole archive graph decide what to do and then check that those packages that it's possible to turn the thing into a tree actually I really think what one should do after this working is for example just a bootstrap AMD64 again every few times because it's quite fast to be built we can see it and I really think that once it's really working we should consider to make bootstraping harder should be considered as a very bad behaviour and so if you do it routinely it will eventually let it drop so I think we really should go in that direction and now I give the microphone back to Alexander to move again there was someone at the back there I wanted to say something oh sorry that's exactly the kind of thing we're looking at maybe set this up automatically to do a bootstrap of a new pretend architecture every weekend or something and then submit the bugs clearly that's where we want to get to a certain amount of work to be done before we're there but yes a small comment regarding the breaking cycle algorithm it makes me think a lot about the APT algorithm that we used to install the packages that are in a cycle and I mean all the code should be fairly should be kind of the same it is except that it only looks at install dependencies it doesn't look at build dependencies we have to do that we're mapping back to the corresponding source packages in practice in practice is the same problem I would love it if somebody who understands graph theory and that sort of thing and recursion and stuff were to do that because it makes my head hurt um yes so what else there's some documentation about this and if you want to read it is as ever slightly out of date with respect to this presentation but it's pretty good if you get something like this change you need to write down exactly what it is that should be done so I started writing down exactly what it is that should be done and that's what's on the debut and bootstrap wiki page so anyone who feels this is interesting please read that it doesn't have the patches that I've done there yet but it will have any minute now there's also I said there were a set of very common build loops there's actually about 20 odd I've found so far and the circular build dependency page lists the boring text file of those um the other aspect of this is cross building because in practice the analysis I've done is only for the cross building case sorry before we get to cross building I noticed that almost all of those loops involve at least one multi arch for a package you don't care with what architecture for example tech is when you build the documentation so almost all of this problem with disappeared moment multi arch no because the analysis I've done is assuming that that problem has already disappeared so the much larger problem in worrying about all that stuff will indeed get much better but I've done the analysis for assuming we're already there not every single loop will disappear but I guess like that so the graphs I've showed you are with all that stuff stripped out apart from that first one 10 minutes yeah so I created a new cross tag just to keep track of cross build issues because there's quite a few of those so there is now a tag and user name thing to file cross bugs on and if you go to that URL you can find out about them and there's also a fair amount of documentation appearing as a result of Leonardo caring about this and me wanting to write things down before I forget this is useful if you haven't done much cross building before and would like to get started especially in new multi arch world where everything will be lovely currently it's not actually very lovely it's slightly lovely if you're an Eric than if you're in Weezy but you know give it a few weeks and things really will improve dramatically multi cross builder so this is the same problem as for the bootstrapping issue there's also do packages cross build to which the answer is in many cases no but you can only find out by trying it at the moment it will be handy if there was a build D web page with thousands of packages saying did it cross build or not using the standard infrastructure which has been on my list to do for months and I haven't quite got around to it yet so again anyone who's trivially enthused either just do that or come and see me and I'll tell you how I think it should be done so to open this up a little bit in the eight minutes that are left what do we think about this do we think this is something which should be in Debian generally we should perhaps make it policy that it should be possible to bootstrap the whole thing there are no irremovable circular build dependencies I'm interested in whether people think the staging name is sensible or the bootstrapping name is better and what the whether we should use build options or some other environment variable or even just options there's all sorts of ways you could implement this I've picked something package maintainers so looking at that big graph there's all sorts of places you could break the loops and some of them will be easy and some of them will be hard so we've done a few in fact the ones I've looked at it's usually fairly obvious but anyway if any package maintainers who see that their packages are in the graphs and go oh well it's trivial to just not build it with foo because usually upstream does not have this problem upstream will use some configure foo and if it's not present and it doesn't need it it'll just not bother and carry on doing the build it's normally the Debian packaging which is less flexible than the auto foo underneath so generally this is our problem to make our packaging a bit more flexible in the way the auto conf is as I just spoke about auto foo stuff I've also already consigned I mean we know which build depends we are and we check them we could let the auto foo stuff a bit more open and say well if these ones are missing we just do the right thing just not so much so we don't need to filter everything out so perp sets a direction which might be even helpful in other case where we say you could leave these parts out of the package it will still be correct it will do something but perhaps not the full backend functionality which might be useful for other things are you suggesting build depends recommends it's not depends but basically something build recommends just as a thought I'm not sure if it's good so I think we did think about build recommends and decided that was a little bit scary and we weren't quite sure what to do with it but it is an interesting idea and would be a little bit more like what you're trying to represent so you briefly skipped across this but there are some really awkward packages particularly languages really very hard to cross build or indeed bootstrap or anything are you basically just decided that's too hard to think about now and we'll do it by banging our head against brick wall as usual it is possible to get your language everything in the archive bootstrapped we do it regularly now some of the cases that are very difficult to cross build are simply because the upstream's build infrastructure is shoddy and we should probably just get them to fix it Colin when we've worked in these problems so far we have fixed I think Perlin, Python so far Haskell is resisting sanity but I think most of the major languages in the archive should cross build now to some degree oh it as well yeah but a number of while it's orthogonal to this to some extent because it is within one package and can be dealt with by existing mechanisms we don't have to invent new mechanisms for it but you do have to solve that problem as well yes I mean ideally every package in Debian would also cross build and practice for the moment probably 20% of them do I don't know no I guess there's a lot of fairly simple stuff further up the tree actually it gets a bit easier in many ways because you know it's a standard thing that depends on some libraries and that kind of stuff usually works but yes that is like I said these problems are closely related but they're not the same thing and we can separate them yes so that's it I've finished is there anything else people wish to ask did I make sense I came here late but I just want to add that you showed a big huge graph in the beginning with the ghost script in it and I believe that one is solved yes and thanks to you showing me the horrible graph I'm sorry it was the biggest evil looking graph I had to handle on my computer so I thought illustrated the point even though in fact it's now moot yeah oh well so there's already as Wookie said we have a load of cross build patches already been filed in the BTS as I was going through cross building it was going to be a natty base system and Wookie's been looking at other stuff too for every bug that we found just about I think we have patches ready please if you have one of those patches against your package if it doesn't if you're not convinced it works if you want to talk about it please talk to us don't just ignore it we would really like to get this stuff going yes actually one thing I think would be useful to have an argument was whether failure to cross build should be counted as something other than a wish list bug which is traditionally the status they've achieved in debut at the moment because we go we don't care we build everything natively now I don't know whether if I were to suggest that at the very least they should be normal bugs there'd be any dissent is there any dissent in this room oh that'll do then oh is that some dissent I saw over there do you want my phone well I'd say if it's a package that should be able to cross build easily then it's okay having it normal but packages like languages that maybe need themselves as a compiler to compile for the other architecture if it hasn't been supported previously it might be a bit too much to say it's a real bug it's just something that doesn't work and it's upstream doesn't provide it so that's a little bit of dissent just to make sure we're done a piece of metadata saying whether you expect this to work or not might be useful if someone could think of a sensible way of defining that that yeah actually I think we should handle it like lots of other cases I mean if it's rather trivial to do it then I really think it's a bug that should be fixed and we should really be ashamed of not fixing it which translates to it's an important bug I mean if it's quite an obscure thing where you need to put a few weeks of porting in then it's a bit different I mean if you provide a patch I would assume that the maintainer should apply them anyways which means yes I would rather consider them as important in the normal case but in other cases might be wishlist like please make GAC to do ghost building I'm not sure if that's a really good idea but that's something else I mean sometimes you get a bit of an argument with Upstream who has an opinion about how it should be built which isn't the same way Debian is doing things and that can be Apache stuff for example is an abomination and they've tried to make cross building, cross platform stuff work but they've done it in such a way as to completely break cross building which seems a bit perverse to me but that's quite a long argument because it's complicated I guess I should stop so thank you all for coming to listen I hope that was informative


The career cluster known as business management and administration provides exciting opportunities and a fast track to success. If you crave a fast-paced career, you can begin today by enrolling at a Wisconsin Technical College. Everything that we do is focused on a little bit of theory and a lot of doing and practical application of the tasks. Technical colleges are ideal for many students, whether you want a focused path to a career or to continue at a four-year institution. Expert instructors lead the small classes and many students can attend a campus close to home. They can schedule classes around other responsibilities because classes are offered day, night and even online. The hands-on learning, credit transfer options and strong job placement add greatly to our students' satisfaction. The small classrooms and individual attention of the instructors gave me the confidence to feel that I could come back and succeed. Employers love that our students are ready to work from the start and they appreciate the confidence and skills students have right out of college. If you'd like to manage a business or organization, explore a career in the field of business management and administration. You'll find great value at a technical college. Find your passion and fulfill your potential today.


Hi, this is Pien. I'm the co-founder of Eco Greenergy. I'm also an enterprise focusing on eco solutions. We want to do something eco, and at the first beginning we think about food waste. And they try to evolve to coffee grounds. And we have successfully identified some market demand, and then luckily we have different customers supporting us and make us able to move to a bigger and bigger space. I think I'll have two key tips. One is really being critical on whatever that you have found via different sources, no matter it is Google or from other people or from some companies that are very well known. It doesn't matter, but you need to be very critical on that. And you need to see from the way that you need to challenge it. Challenge it until you cannot challenge it. And then that's really the fact, or it really works. Because for most of the news or the information that you can see from media, it is somehow masked because of maybe marketing reasons or because of confidentiality reasons. There are lots of reasons behind. And you need to kind of go through those invisible layers until you find going to the bottom to see the facts. Like for food waste management, we really visited the residential estate during food waste recycling. We go through the entire end-to-end process to see what different parties are doing along the whole process and to see how our company can play a role in that process and to see if it is something that we expected. And not surprisingly as usually really when we go into the field, the fact is really something different from what we have learned from news from Google or even from other companies in the field. So what we have learned from Q is that we really need to be seen by our eyes. And point number two is that how to evaluate is you need to be persevered as well because it is a journey. Actually you don't know when the evaluation is really completed. There is not an obvious timeline, progress bar, sorry okay it is done, the evaluation is complete. You need to, when you cannot find any new findings, you still need to go into that, go into that until you find something, okay it helps your business. Or it is a key gap between the customers and the business. And then you start working on that. Because we have suffered for a period that we can hardly find a customer which can give us a stable income to make the company survive. The reason is that actually our key customers that we were looking for is the residential estate. And usually the residential estate is looking for some low cost solutions and they do not have a hard timeline to push things forward. And it will be us to push things forward and it makes the whole thing dragging and dragging and this is not healthy for a startup like us. So we have started to explore different directions in tackling the footways of recycling. We have thought of different footways and coffee grounds is a footway that is very clean, very hygienic. We can easily collect from different cafes or hotels or corporate. So we started actively participating in many networking events to mingle with different corporate and then luckily we have connected with one big corporate to start the coffee grounds recycling service. And that is a good start because we can demonstrate that it works and that is a need as well because right now more and more companies are actually looking for innovative or eco solutions but not just recycling paper, bins, plastic bottles. It's not just about that. They want to expand the scope to prepare for the waste charges in upcoming years.