Here's the deal, folks. Here's the deal. That shot you just saw was filmed at 6.50 a.m., so good eight or nine hours ago. It's been a busy day, but don't fret. Don't fret. If you are considering making a daily video for Facebook, for YouTube, don't worry. Don't let anxiety into your heart. If you are like, wait a minute, my whole day's gone. I can't film anything, all right? So it's five, no. It's almost 5 p.m., and I'm heading home, and I'm gonna show you what you can do in a short amount of time and still make something that is of general value, maybe not the highest quality level vlog, but something that is still fairly entertaining for you to watch. Capiche, and that's what I'm gonna try and do in the next three hours before I get so tired and I have to put the camera down, all right? So we're going home, roll a ding. I'm glad you guys aren't inside, it's just chilling, just chilling. We're chilling like a villain. Jalen like a villain. Disc, we have been duped. There's chocolate, there's choco, chocolate cocoa. You didn't know there was chocolate in this, I thought it was just nuts. I need a little monster for the monster down here. You do that? Oh my, whoa. Monster, monster, monster, monster. Michael has no idea what kind of family he joined. He has no idea what kind of family he joined. Yesterday's vlog, all about the Super 73 electric bike. Oh man, go check it out. I'll try to remember the link to it. Go check it out. Yesterday's vlog, it's a good one. Gotta keep the baby fresh and the vlog fresh, right? We're just trying to keep this little baby fresh, right little buddy? It's good to be a baby in 2018. A heated box thingamajigger for your baby wipes. All right, I know we were kind of bashing on Target earlier. Not anymore. This is from Tarjay. Thank you, Tarjay. So nice. I'm gonna cut here, I'm gonna cut here. You don't need to see this, you don't need to see this. And that's a wrap, folks.  A little bit of effort and a little bit of time can create something of value. Now it might be a little bit of value, not a ton, but a little bit. And that consistency for your audience, for your fans, for your friends, for your YouTube family, you guys in there, that's what it's all about. Consistency and a little bit of value. That's what you gotta do when you're doing the daily, when you're on the daily, all right? And guess what? Was that the best vlog I've ever made? That is the question of the day. Was that the best vlog I've ever made? And I'm gonna answer it for you.  And oh, it was not, but that's all right. You gotta throw perfection out the window when you're trying to make a daily video for your people. Your people, you're my people now, all right? That's all. Ah, seek beauty, work hard.


Rydyn ni'n ei chael eu cyfrifio o ddweud o'r cyhoedd ffordd yma. Mae'n dweud o ddysgu chi'r cyhoedd yma. Roeddwn ni'n dweud o gweld ymgawdd yma. Roeddwn i'r cyhoedd yma sy'n ddweud o gweld ymgawdd ymgawdd yma Ac roeddwn i ddweud o gweld ymgawdd yma. Rydyn ni'n ddweud o gweld ymgawdd yma yw amddangos ni'n ddweud o gweld ymgawdd yma ond we're looking at product as opposed to the necessary software quality, so it's not necessarily all about the code. This is all based around a large pan-European research project that's going on right now, so all I'm going to do is spend a little bit of time just introducing the work for that project, what it's all about, the kind of things that we're trying to introduce into free software quality assessment. And then, basically, there's a few questions I want to put to, you know, Debian package maintain, and there's a whole to see what you guys think about when you think about quality when you're evaluating your own packages or what you think about quality when you evaluate Debian as a whole. So I've got a few questions which will be sort of based on the talk. So the talk's really just kind of people before. It's actually based on what I'm giving you at the academy in a few weeks' time, so I'm going to put that short, keep it up to like 10, 15 minutes. And then it's really open to discussion from that point. It really is all about sort of best practice sharing and stuff like that. Feel free to cut me off at any point and ask questions. It's a discussion where it hits both. It's another talk. Have you said something? Yeah, I'll, the slides aren't public yet, but I'll make them public immediately after the talk and I'll give you the URL. But if you could just copy them now to some of its Facebook or Delay, because then we could just look at the slides. You look at them, sure. It happens if you're giving a talk with geeks. Yeah, yeah. The P2P installation. There is a P2P here. Yeah. The software is a P2P system. I can't talk to my web server, so I'll try again later. I can look at this up for you. It's probably just not. Yeah, that's what I was going to say. The presentation is not important. It's the basis for what I'm going to be giving to the KDE developers in a few weeks. This really is a discussion. But yeah, I'll press it afterwards. Okay, so in my day-to-day work, I'm a free software researcher. Happy for a few years now working on generally to the large pan-European projects. Today, the key point for this discussion is one of those. It's a project called Squash, unfortunately. It's the software quality observatory for open source software. We're building a platform to evaluate quality based on as much public data as we can get our hands on. So, whereas in the past, people have focused on their code primarily. And they've run simple metrics based on slot count and things like that. What we now want to bring into the equation is basically anything else we can get our hands on. So, by looking at mailing lists, how can we see how discussion affects the quality of the fine product? How can we see, from some of the metadata that's going on in the subversion, CVF kit, whatever, how what goes on inside there affects the final quality of the product? So, it's basically looking at new ways of evaluating quality based on all the public data that's available. Not just the things that are commonly looked at, like just the code. The reason particularly that as a project we were keen to engage with Debian is because, basically, because of the packaging, because you guys as developers are not so focused on the code in terms of development, but you are in terms of maintenance. So, what we're looking at is how Debian, in that respect, differs from the actual upstream development projects in terms of how the final system might actually be used, what it might be used for, in terms of what you're actually interested in as package maintainers, when you think about what makes something a good quality package. So, the problem we pose with this is that quality is completely subjective. What I think of as a good quality code, a good quality final product, is not necessarily what you guys all might think. So, we're posing a situation here where, when we do try to evaluate quality, we're left in a situation where we are forced to create our own guideline, our own starting point. So, for instance, if you're in Debian, we do have guidelines to bend minimum quality builds for packages. Certain projects have actual processes that they expect you to go through when you're submitting code and stuff like that. And those end up being like our quality definition, in effect. There are any point, that's the thing we're ultimately trying to see if we can measure in some manner. And so, what we're trying to do is build a system, which allows us to actually just automate all of that. So, the idea is it's going to be a plug-in-based number cruncher, quite frankly. The idea being is all of these concepts, all of the things that you consider to be contributors to quality, the idea of what we're trying to do in this research project is to, well, first off, in sessions like this, get an idea of what those things are, and then look at ways of actually evaluating them. So, having tools which run metrics against code is common practice and it's easy, quite frankly. I'm building plug-ins for them for our final system. We'll be, you know, trivial to build on this. However, when people start talking about things like, oh, actually, I could see how the ratio between the size of a package and the number of maintainers might have some kind of, that might have some kind of bearing on the quality, or it might be the turnover of maintainership. How many times has this package changed maintainership in the last, since forever? All of these things, they've become slightly harder to measure if we, for instance, if the public data about that is in some kind of unstructured form, we then have to start writing quite complex tools and all together to then actually, you know, run it against the rest of the code or whatever quality model to see how it actually contributes to quality. So, those are the things that I'm particularly interested in in focusing on in this discussion when we kind of, when I finish talking, we start talking more genuinely as a discussion. I'm going to introduce one. This is an example of kind of things that might affect quality that you might not have thought about. You'll have to forgive me. This is where kind of the maths is going to kick in, so please, once I post the URL, go and find the slide and the maths will be there in front of you. But something I've been looking at, like in my own particular part of this project, is looking at how a project manages to engage its developers over time. The reason for that is in my general area of interest is looking at, my specific area of interest rather, is looking at agility. So, is there a relationship between how agile a development process is and the resultant effect on quality? So, that's specifically why I'm looking at that. So, as an example of the kind of things that people don't necessarily think about, I want to introduce something called mean developer engagement. So, this is a measurement of how well a developer is used over time by the project, is the project making the most out of its developer resources. The free software projects, they're all in competition for developers and users. It's just kind of, you know, it's a fact of our ecosystem. So, being able to engage developers is really important because quite often they're former users who have become developers or hopefully the other way around, but people who have skills that you want to attract into your project and the hope that they'll become end users as well. So, it's quite an important measurement. So, I won't talk through the maths, but I'll show you the result of it. So, this thing called mean developer engagement. Basically, if all of your developers are used all the time, you'll average a score of one.  But that never happens, especially early on in projects where someone starts it up and says, quite like this. It's my personal itch which needs scratching and then someone else comes along and joins them and there's tension and friction and one guy drops out and another guy takes it. All sorts of things tend to go wrong at the very beginning of the project. So, I'm afraid this is huddled around the screen time just to show you what's going on. So, what I've got here, as I've got the red line, is this metric, is the mean developer engagement. So, how well does the project manage to engage its developers over time? As a reference point, which I'll show in the next time why it's important. The green line here is the actual number of developers in the codebase. So, basically what this is showing us is that this is for the entirety of a subversion for KDE. So, we're talking about 1,600 developers and it's a 50 gigabyte repository. What we'll see here, and as I said earlier on, quite often is here you'll have an anomaly early on in the project, which is almost all projects have it. I've actually yet to find one which won't. And it's basically caused by a turmoil early on in the project.  That type of thing happens, it seems to happen early on in the project. So, that's the kind of thing we're getting. There are also almost always asymptotic to some level as well. So, for KDE it's just below 30% utilization of their developers over time. Now, the problem with this in its current form, so what we're measuring here is the number of active developers over the total number of developers over time. That's effectively what this is. It's a simple measure that's been graphed here. Part of the problem is understanding where and when someone actually drops out of a project. So, when you're calculating the total number of developers in a project based purely on some version of Git, CVS, whatever, it's actually hard to detect when someone actually drops out, because they've been inactive for five weeks. There's nothing to say they won't be in week six. I'm currently looking to ways to get around that. I mean, there are ways of getting around that. But this is a very rudimentary where we basically say if you're in some version, you're in the project. The total number of developers only ever goes up in this particular scenario. As a result, these figures are slightly lower than what you'd actually expect. You'd expect me-development engagement to be slightly higher because I'm taking into account the developers who have actually... So, I mean, the things to note here are the actual slope. So how quickly does it drop off? And to what level it drops off? And to give you a good example, let's hold around the screen time again. Here's the same for a pinch. So we've got from KE, which is obviously a very large project to a pinch, which is just a small subset of known. But what we've got here, and the reason I chose it is because it's how dramatically different it is, is it drops off very quickly and there's a lot of friction going on. And then it's asymptotic to actually a very low level. It's sort of 2% developer engagement. And so, as quality evaluators, if we're able to see this kind of thing over time and know that as events, hey, I'm pulling in a new developer engagement of 2%, but KE can bring in 30, 40%. There's probably something we should look at as a product developer, as to how we should better engage our developers to make the most of what's, you know, an effect of very scarce resource. Now, the interesting thing here is around about a week, 300, the number of, you know, the size of the MDE actually grows. Now, over time, to get MDE to actually go up, like I said, it's asymptotic somewhere, to actually get it to go up again, needs something pretty extreme to happen in the developer community. In this case, you can see the green line when it shoots off to the top of the graph. Now, actually, when you compare this to the previous one, the scales are different. So actually, the growth of developers here is still not as good as the growth of developers in the MDE project. But in comparison to how it was, this is extraordinary developer growth. And the reason that happened was events sat in the known repository of doing nothing for about six years. What happened here, this has been in development for 300 weeks. And as a week 300 was the first release, and the number of developers shoots through the roof because everyone goes, oh, I like that tool, but it doesn't do what I want it to do. And everyone pounds in. So at that point, the mean developer engagement actually goes up. So not only is there a lot more developers, the projects actually come better at using them. So this is the kind of thing that as quality evaluators, we can start to think about, rather than just code, in terms of am I producing a quality product or not. So all this is doing is, this is a part of the script that I'm running against a mirror of the repository. I don't have the data in there, but I can do it. I mean, this, this. I hope we can see which things in there that correlate.   So that's the problem. I can run this against, in its current form, I can run this against repositories. So, basically what it does is, I mean, it takes the, not in the XML form, but it takes the plain text, SVN, lock, which became ease up, 149. Because of the video, I tried to get out yesterday from my ideas. We have, like, a quarter of the archive on SVN, on AWS. And we couldn't, we couldn't, we couldn't, of course, use the XVCS to hand us to say, well, we have so many art styles in those. So we couldn't make something, but it's not as easy as purpose for KDE. No, sure. Because we didn't understand that. So, I mean, what's interesting, the reason I, I want to actually do a direct comparison between KDE and GNOME, but you can't actually do that, because GNOME doesn't have one repository. It has separate repositories for all the separate parts, whereas KDE has one repository where all the separate parts is branches within it, which is why events was done by itself. Just to give you that, so I mentioned, just to show you the kind of things that we can find, you have to, you have to flag up and say, okay, I can see now that something's going on here and, you know, this might have a knock-on effect to the quality of my product.  There's this massive leap going on here. The other thing is, I mean, this is asymptotic to a very low level. So decreasing the worker can mean, actually, at least two things. These are the project is supported in some way. Oh, just because it was a venture on your future, that's a thing. Yes, so all of... It is, I think, very steady and hasn't changed for maybe seven, eight years. And some of you are saying, okay, we need ACL, we need to introduce some X actually in it, and certainly this is going to be... Sure, yeah. Well, that's the important thing. This only works for people who are actively involved with QA to be able to interpret this properly. You have to know what's going on in your own product. You know, because I'm not involved with events, I had to do a lot of groundwork to work out what's going on, for instance, here. And why this is such a low level. But if this is an evaluation of your own product, you know what's going on. So you can look at this over time and say, oh, this is not a dip now, what's going wrong? Or maybe it's dipping and you know why it's dipping, because you know it's become stable and it really doesn't need much more work on it or whatever. As someone who's evaluating your own product, you know what's going on. Yes, it's difficult from my perspective, for instance, when I'm trying to evaluate hundreds of projects and I don't necessarily know what's going on. But, I mean, for instance, it took me a long time to dig what's going on here, but actually this is extremely hard to see in the frame. What I've got here is I've visualised what was going on in subversion. So what you have reading from left to right is columns, where each column is a week of development. And then from top to bottom you have the developers. And what happens is quite simply, if a developer does something in that week, they get a green block to show they did something in that week. And what you find is between here and then this point here, so this is time running in this direction, between here and here is that 300, I've shown you before, nothing happened for 300 weeks. That's this here. And the reason that the reason it gets so low is because for the first 300 weeks, I've never seen a project so bad at engaging as developers. It takes on about 36 developers in that 300 weeks and in that period only one hacker ever committed in any one given week. And you can really see that there's a lot of people coming just doing one or two commits and then disappear again. So this is just a week. That's what they had for almost 300 weeks was someone who came in, did a week and then dropped out and there was never more than more person in any given week. And then basically what happened was this person came in here and they basically maintained it for a long time. But then after almost a year of development themselves there and then dropped out while someone else comes in for a few weeks then they come back for a week then the other person comes back. It was almost as if they were just passing maintenancehip from one to the other when they kind of got bored of it. I thought I'll have that back again. That's the exclusive told. So that's what they did for 300 weeks. So as a result, their figure is quite low. So despite the fact they had I think 34, 36 developers which is just so even here this is still one developer at a time but as a matter of fact here this is week 300 when you start seeing multiple commit for different committers in the same week. Wasn't it maintained since no, so maybe just people had access or where more people came to do a small change and... Yeah, I mean basically what from looking through the thoughts where we have a situation is where someone says oh I want to make a better graphical wrapper for XPDF and so they check it in the libraries for XPDF and a few other things and then it sort of, you know, if you read the committers like you know added a small feature X added a small feature Y like it was piecemeal for a long time and it remained that way but it was just built up very slowly by one person at a time basically of 300 weeks so I don't know the culture of known and I don't know why that was the case so all I'm suggesting here is that someone from the outside of the village, I don't know but to me that very quick drop followed by sustained inactivity to me seems like something that has developed as they should have been maybe concerned about so enough for that time Is there any chance Yeah, I'm going to push Dad, put it up we'll be able to come out if they're not steaming This one is not steaming it's only tapes The slides will go in the archive along with videos so Sorry, I'm not seeing so that's fine Another thing to think about which is what some of the other I'm just pursuing some of the KDE that we're looking at in terms of so again just think about things other than code that we can measure is looking at license incompatibility just an example of something else that we can actively measure a lot of projects have this as a problem in that they've got code which is committed which says this is GPLV2 and in the same code base you've got people with the and newer clause or rather the or newer clause and then at the same time they're having a situation where people send them patches to the patch I mean it's like okay do I assume that the patch is for the original same license as the original file do I just turf it, do I make the effort to go back and ask the patch which license they intend to use and stuff like that and again this is something if you keep the data or if the data is already stored you can measure and again we can posture some kind of knock on effect with a result in quality for example if you are finding in a situation in your day-to-day workings you are having to turn away from the code because the patches are not licensed you might be putting yourself in a situation but actually if you did chase up whoever wrote the patch to find out which license they intended then actually your rate of development or maintenance or whatever might actually go up so again it's just suggestions about things that are outside of the norm source here thinking so basically any of these kind of these metrics these things that we can think about and say yes this potentially has this could be part of our quality model that we can measure if we can write a tool for it by and large as long as the output is in some way saying you are readable then we can wrap it up and have it as a plug-in to the system that we are developing so the system that is currently proposed we are still going into our design phase but the idea is that this will be based on a framework called OSGI is that something you've come across OSGI is the open services gateway infrastructure and it's basically a way of distributing jobs over multiple machines so that you can have this jobs engine and stuff like that and it's plug-in based basically it's very easy to write wrappers for jobs which then get scheduled it's it's a standard it's not an implementation it's the standard I think the best known implementation of it is called Equinox and that's actually the back end to Eclipse so if you've ever used Eclipse and have a feel for that that's the kind of system where basically as I said as well as we can write tools to evaluate whatever it is we see is important to quality we can then aggregate the results in some way which we see where we want to give better weight into for instance what Linda tells you about your packages as opposed to you know what MDE tells you about how how effective things are going on upstream in the developer base that's the kind of system that we're planning on building the idea hopefully is that in the end this will be a system which developers and hopefully specifically in their package printing would like to want to use in order just to keep a running you know eagle eye on what quality is to your project to your package that's changing over time so that you can adapt accordingly quite frankly to your building so it's something I didn't want to touch on too much about the workings of the project I was really focused on the tool but yes is the answer what's happening is that we're developing a tool which is free software so the idea is we want people to go out and use it for themselves on their own problems however because obviously as the developers we've got the head start we are going to build up basically a large database of certain metrics built up over time so basically we're going to pick up a lot of low hanging through during the course of the lifetime of the project so for instance we'll look at stuff like creative databases of things like slot count, RwC-L you know per revision per project for any project that people are interested in so there will be a publicly available data source for certain projects if we've run them however the tool is free software you'll be able to go and grab it for yourself and run it against which any projects interest you whether that's just your package or whether it's the upstream version as well or whether it's anything you might be interested in but yeah, a rudimentary data will be available for certain things because it's although it's going to take a while to do you WC-Dash out for every file and every revision of certain projects like doing that kind of thing against KDE is going to produce quite a massive table in a database somewhere but compared to like the metrics that I've been talking about here they're computationally more expensive so as a project I'm going to be running them against certain projects but for developers it'll take a long time to crunch those numbers so part of the problem with the finalized system is how long it takes to evaluate quality purely will depend on your quality model and if you do include things like some of the things I've been talking about then that might take a long time to compute depending on what kind of part you're going to be able to do so that's that's kind of like just like an eagle-eye view of what we're doing as a project I'm basically I'm giving a presentation followed by a boss at academy and I'm doing the same at Warwick and basically as a project we have three questions which we want to pose to developers that each want to get kind of feedback as to are we going in the right direction of the project so I'm hoping those on that form of basis discussion from now on so the first question is simply what are you guys interested in when you talk about quality so you know when you look at your packages you might say okay well we've got the deviant guidelines for package maintenance we've got linda we've got lynching we've got JavaScript which is doing nice and in terms of your product quality and again I mean either deviant or just your packages how far do you go, what is quality to you in terms of the product speaking as a user and then with the more developer answer to people like Andy which probably doesn't do it at all I think the response time to bug reports is really about teaching you can have a wonderful software product which has a really bad deviant package and same as the contrary just because the maintainer of the package is like your front end to the point of the package so if I send a bug report I would like to see an hack back if I send a patch I would like to see if applied or not but with an answer if I send an upstream patch or why did upstream and so on bug reports are actually a really good one because they're again something which can tell you something about quality but it's not necessarily something you might think of like the number the average lifetime of a bug report within your bug tracking system might so you'd hope that you have many bug reports which have a short lifetime and maybe a few that have a long lifetime but the lifetime they think is more right on the responsiveness in the amount of time till the package is at the appropriate level so if somebody files a bug report say an answer now about something that doesn't work and then the first time I'm going to qualify it and look at it and say wait but actually it's a vicious so it is a disk type bug or whatever so after that time so it's user response time is important for the developer knowing how long bugs are around for actually if a developer says well what you said is actually a vicious bug and if somebody writes a patch or you have it included so that would say from our point of view the bug is handled correctly so given you can have a really nasty bug which is not that important so you can have a long life cycle but you see progress for me if a bug is nasty if it's nasty I'm going to make sure I have a short lifetime so nothing I mean like hard to fix the point is really interesting because it's the point that the project takes to become conscious of bug report and to look at it and to make a decision on what to do with it yes for example I have seen cases where someone reports that a patch is not working at all but he reports it with normal stability nobody looked at it and something like one year later another person reports it as a sea bug and then the community fix the package within something like 2 weeks it's a decision for me to look at what's going on with Debbie and QA and I can show you some bug statistics of mine most of you already know that that's the number of a sea bugs so what you can see happening here is basically the release of edge at this point you see the release of edge happening and it's blown up which just means that the people who are fixing lots of a sea bugs before don't do it and when a couple of a sea bugs just ignore it for edge reasons it's bad but it's not so bad to relay edge which then at this point where this last slide up is we just remove it to ignore it so that's why the bug class exploded and also a new upside version so yeah but that's just measuring and taking for quality what we don't measure is what you said is the initial response from the community which we could perhaps now track a bit better because we can now ask the version how all this is bugged and when was the last written to if it's the same for more than 4 weeks then we might put it on a list to evaluate so that's my story sorry I don't know why because that's not the data in the BTS summary files but that's the main bugs in the BTS yeah you can just say I want to see any bugs that are the same data which are all this in 2 weeks that should be fairly easy to ask to implement on the normal package reports which data? the normal package if you just ask where Donald has just shown that you can say when was the bug last modified and when was the bug created you can just compare and say when was the 2 weeks I want to see the bugs so you could just to create all that unworth bugs don't be that's a cool thing actually interesting so another interesting point to measure which I've observed I think as a common factor in a lot of QA effort is look at how much a package are there to standard practices like if we introduce something new in the policy or if you introduce a new method for handling a package I consider a good package one which is up to date with these practices so I think a lot of QA effort like all which harvest the package and do checks on them automatically can be identified as something which looked if a best practice is used in a package so in that sense you have to hope that where it was maintained or mentioned is actually updating those tools to meet measurements of the new guidelines so for example a package which is using developer if I look at the source and they see that the developer combative development is true I start feeling okay this package is not really this is maintained basically so that's an example if you have a new technology for the new packages and if something is not up to date with respect to that something might be wrong that's a good thing because actually there are a few signs of it so if I usually do backlight if I see a package that's well maintained I don't unmute it so far because you see oh the package was it's not really maintained but it maintained in any ways I would just be quite fast when I'm doing it I can't even know what criteria are applied to that but there are some yes definitely there is a whole rather than necessarily individual packages one of the reasons I brought that up was earlier on WQA there was an email to say hey no one seems to have maintained this package in x number of months but in that time the upstream version has changed y number of times would having the system be able to report on activity within packages commonly be something that's maybe useful to the projectors at home like detecting when a maintainer looks like they're dropping out we are before it but actually how do you detect that a maintainer is dropping out actually what happens is if we see some most bugs are not supported by users but by people I would say first it's a definitely community so for example what I've now done yesterday I've collect a few bugs and when this package needs to go out of testing because it's too broken what I usually do then is I look at the developer and say oh and this developer didn't upload for one year so that's a special alias that's a behalf of Debian was a missing action thing handles so I have to move and it's all of that look and so another team picks it up now as they have picked the maintainer and says what's your state do you work with Debian if the maintainers don't answer the packages are taking away and some other S can take some other or if nobody does it they will be moved so it happens but in some cases it doesn't happen perhaps fast enough but on the other hand when would you say a maintainer is dropping out if it didn't do an upload for three months it could be totally okay especially if we have packages which don't need so often care it's not so different according to the metro it's not exactly it's the same point you made earlier it's the maturity of product you'd expect to slow down no you're waiting when I have had a package and it could be spent for it actually I have had a package which I upload only once during the extra disciple and that's just only because I have a new compile because I saw that it's better for quality to don't exit the same version it's the same version as it is so I would say that I maintain it didn't hit any vaccine and again that's also the kind of thing that you can measure over time so as something is in development you can look at the upstream version of something that you're developing and look at say okay how much of this is maintenance and how much of this is actually new features because as maintainers this is important for you probably in terms of ensuring that it actually works with the rest of everything in terms of ensuring successful integration so maintenance upstream maintenance and upstream like new or changing of features have different ramification for you as you know as packaging maintainers which is also something that might be the kind of thing that you can track the gap between upstream version and upstream version but I think it should be like weighted with respect to what other distribution do I mean there might be a justified gap if an upstream version sucks so it's experimental or something but if other distribution like our true version of what we have in Damian that might be a indication of something that is relevant yeah that's we should also like look at what other distribution are doing with that certain package because if some distribution is also updating a package another distribution is that that's on the way or backwards one are you specifically then talking about say other death based distributions or RPM based ones if you look at upstream versions it doesn't matter at all there might be some exceptional cases where other distributions don't really care about we should like copyright we have some exception packages but we need of course from the QA perspective so packages maintain base not by upstream but it takes quite a time to get ready to oil in because of nice issues which are but of course any of these cases means a package of bad quality that's definitely part of it ok the next question is a project we were looking to maybe I just I wonder what I have to think of as sort of this software that we are already ready for so one thing is adoption of a given package usually if a product is widely adopted we can assume the quality of this iron which is not exactly using and this is and this is a popular theory but sometimes it seems to exist here because of the disparity does Popcorn do your waiting everything that's indebted in base you expect to have extremely high popularity because it gets installed whether you want it or not does Popcorn take that into account that's something that's what I was about to say it's tricky sometimes a package which is supposed to be mainstream actually happens to be removed by many people it's a real sign of maybe this product lacks many people choose not to use this software but use this one instead so they remove from the mainstream so instead of having 18,000 I think that's a good count it's only 17,000 people choose another one maybe it remains the other one has real quality to take into account you've hit one of my favourite points when you get the chance to see the slides the first point I make is when free software products are competing for users and developers or other contributors when the thing that really does that ultimately end up splitting in this quality people the way I see it is people aren't attracted to a project because they think it's good quality and they want to contribute or they might think this is something I want to contribute because it needs help so either way quality is important in that I'm glad you're back, we've come into popularity contest because this is kind of the next big question is okay so this kind of system where we can plug and play whatever metrics are important to us as developers specifically within Debian is there a Debian specific role that you can see a system like this doing the example is I don't know if you're actually on the Debian QA list okay so the suggestion I published to the QA list was okay package maintainers could use the system with whatever plugins they choose is part of their quality maybe one's a wrapper for linger as well which just said okay how does my quality compare with the upstream quality am I actually improving the product by putting it into Debian am I doing something which is maybe it's not working so well by package maintainers the other thing is as part of that you may then say as part of my quality model what's the popularity in my package which may have form part of your individual quality model of your package the question now is is there a potential Debian specific role for this type of system are you aware of a new project that you've seen on some of the history of the company that a piece of software called Moe called Moe Moe industry for the first time where you basically collect the most information on packages and don't have an accessible database and for statistics like your little devlets and other reports and so on and so on and so on I think the structure because a lot of information is fairly loose there are certain things I'll combine in certain ways but it's a useful data repository and lots of things I don't know how active that's continuing and I've got a different interest in the time so if that's a publicly available data source and that's the kind of thing where people could write it should be very interesting to look at just seeking in people's data it's about Debian who still has to go through that that would be the tools which access that data source to become part of your individual quality models which like in this scenario could then be a or multiple plugins to whatever your quality model is is this the kind of thing like as package maintainers what are your your individual practices do they vary widely from package to package? Well I think that we should look at or chat with the mounting graph which is basically doing a PhD of this. I've worked with them and asked if presenting or searching how like new technology or new practices spread in your community The reason I ask the question is because that will have ramfig a spread of practices I mean across free software as a whole let alone just within Debian will have ramifications on how many plugins we need to run whether they run concurrently how computationally expensive they are just how long will it take that was really my motivation for asking the question I mean if something is computationally hard it's obviously not the kind of thing that people are really thinking of doing by hand and so Anyhow in that case we have this question I think it would be really interesting to look at how many patches are applied in other Debian packages with respect to the upstream package Of course you should exclude the patches which are specific of Debian packaging but that's not quite easy because a lot of packages are maintained with tools like de-patching in which you separate the patches regard to the temporal look and the patches needed by Debian and not only the number is already significant but also how many patches flow upstream like I'm maintaining VIM we have like tens on tens of packets of patches but just before the upstream release we usually ping the upstream and almost all of them flow and will be integrated in the next package on the next version of VIM but I think that's a clear example where Debian packaging is improving the software point I think you should have a look at both of the name that's supporting 15,000 packages I'm conscious of the fact that we're running towards the end of the actual hour are there other sort of Debian specific quality issues where you can see a system like one being proposed would help you either project as a whole or as individual maintenance is there anything specific to what you see this is the kind of thing this could help me in some specific way ultimately what we're trying to do in this project is build a tool build a system that people will actually want to use now we're very conscious of the fact that KDE is actually a partner of the project but we don't want to end up doing a tool which is only useful in the KDE actually what would be useful to get some tools in Debian would be speaking about the most what you said and the other one would be to get the output at least get some indications on the package type of system because it's a page on the web on the package type of system that's the main page I look for if I look at a package what's the package I look for which was the last upload so I can see oh five interviews by five people is the last maintenance upload was in 2001 so there are no watch packages so I see oh you have a lot of maintenance uploads and sometimes an interview in between so say okay that something is okay so we've only got a couple of minutes left I will actually strap up just now my thoughts I mean what I've got back in this is we've now talked about okay there's a potential to look at upstream versus package quality popularity contest the stuff that comes out more these could all be potential plugins for one overall quality model which this system could then completely as an effect part of the continuous integration of needs be actually from my point of view how should I say of course we have been using statistics a lot because you can't handle so many packages so many bugs otherwise if you don't use such methods but what I'm happy about is that currently we don't have or we have the approach to say we have pages where we just put on a lot of statistics of different parts and then it's developed us so it makes the final call which is a thing I like back much and basically the package like system is trusted it displays a different version it displays potential issues detected so I think that would be it would be good to have the output there to see what's what's going on quality wise related to upstream or where is the upstream version also for example that could be just as is on the package type of system I've got one last question which is kind of a little bit out there but it's in terms of where I'm going to take my work a bit further Do you believe there could be a relationship between the web of trust and the quality of data? Yes, by case and empathy is where everybody understands everybody's case it's not like you have days when the keys are actually saved so if you can identify a question to keys and parties a question to private consultants so you would probably get a relationship and you don't affect to the code actually there are some relationships because I have identified when I look at missing extra maintenance there are some people who just appear a bit and disappear so these people often have only one or two signatures so I doubt that this was between someone who has 10 signatures or about 100 signatures that's only about he signed a part for a lot but if somebody has two signatures or 10 that makes a large difference I think if he did he signed a part you would probably thank for a lot of trust in data and the quality of the code for missing extra maintenance all at Amazon I really don't think there are many relationships because I mean first of all when you sign a key you just sign that you trust to be who you said to be so it's not really a quality trust it shows that you can meet other people it just shows you who you meet other people in depth the reason I am is because you have to have met person and they have to have identified themselves too so it's a good way of measuring how often and what the quality of meetings are on a project so it might when you choose a quality of meetings I agree on that but I mean you can have a wonderful contributor which like basically never met other fellow developer actually of course what you say is very very to independent of all measurements measurements only if I love estimate I will give you a parody of my work or what I do is basically if you have 10 IC box it doesn't say it just says there are 10 issues and if there are 10 easy issues then it might be a 10 bad issues or 10 far worse and 80 easy ones and that's in the end a call of the developer so it might give indications but it doesn't make an assertive answer about if it's good or bad quality that's something we always need to keep in our mind in the figure out numbers and measurements to give good indications but they are not the final answer good if you're looking at doing this social structure happens well there's another project that's making us interested different angle what you're saying for the mailing lists a person from Merlin looks at the talk at EuroPyfe last year they've taken discussions on the Python mailing lists and it's about whether they're really interesting following and seeing what the resolutions we need to wear are and they've actually tracked what sort of discussions they've progressed to no problems happening a project or so on and they were doing quite interesting analysis and that can be quite good if they feed in as well so we can get a better discussion but specifically who's transported to who on a competed basis and how much we've flexed quality do you want to deal with that over there and these are all things which they might not seem that they relate to each other and they might not seem like they have an effect on the quality of web of trust to the end but they're all potentials these are all things which we can look at and in conjunction build a quality model around them and say the reason I particularly want to bring up web of trust to the end is because it's something that is actually so important especially when there's any in there but it's hard to ignore it and say that it might not have some effect on quality which is why I'm doing that and it's a number attached okay thanks very much if you've got keyboards at the ready or pen and paper I'll give you the URL which I'll post the slides to where you can write it down on this classroom I'll do that and I'll post it on Debian QA as well for those of you who are a bit per there and if there's anything more discussion wise Debian QA is probably the place or feel free to just try it out by an email and yeah I'll make another URL as well thanks very much


Welcome to the Kingdom of... Avalon! Yes! This is Ultimate Epic Battle Simulator 2! If you remember my channel when you covered the first one, loads, absolutely loads! And this time we are playing the sequel which promises to be even better than the first one at an amazing 30 FPS. Look at it, isn't it beautiful? Who's this guy? Oh! Oh, it's Keanu Reeves! So in the back we have Archers who are set to attack. This is humanity's last stand against the animal menace with Keanu Reeves. I don't know if he's set to attack. He might be, I'm not too sure. Then we have a bunch of Imperial Knights in this civilization, the last bastion, the last hope for mankind. Yes, look at them, aren't they amazing? Not a single drop of fear of sweat on that head. Although it's quite hollow. Yes, there's that. And what are they facing out here? That is right. It is 200,000 chickens! But it isn't just 200,000 chickens. Behind them it is...  This is 10,000 mantis shrimp. Maybe this is probably a bit too much. But leading this valiant... Would you say valiant if they're destroying humanity? Humanity, yes! Because they've been caged and eaten for far too many millennia. It is their fearless leader! Wait, there he is. Hold on. King Ducky! Oh sorry, I should say Ducky the Great. Okay, so we're going to click K to start this, but I want to keep an eye on King Ducky. King Ducky will not go down without a fight! Let's go! Look at him go! Go, King Ducky! Oh, listen to them. The valiant war cries!  Oh, the duck's arranged! I have no idea! King Ducky goes in! Under a hail of eggs! Oh wow. Oh, who are they? Oh, they're attacking! They're running into the egg mess! And there is just a bloodbath! I think it was snowing there's that many eggs! Where is King Ducky? Is he underneath the pile of bodies? Oh, it looks like King Ducky is in here somewhere! There he is! Valiant mother of gold! Nobody can stop King Ducky! Yes! He's getting stuck in there! Oh, here we go! Oh, the knights coming in! The knights are coming out to meet the menace! Oh, and there he is! There's Action Man! And the archers is Action Man shooting King Ducky! I don't even know what... Well, this guy's kind of giving me like... You got this! It's anybody's game at this point! The imperial knights are trying to get through the hail storm! Oh, they're actually killing some! They're doing a great job! Oh, but then they just get absolutely taken over! They won! By the eggs! It was a valiant last stand! Look at this guy go! He runs in! And I don't even think he made it out of the bush! There he goes! He might have killed one! And the chickens are going in! They're making their advance! Oh, they are surrounding the foot soldiers! This is cool, by the egg! I wonder how the eggs would take the killer man! If you were just like throwing them up! Like this! He gets the speed! It was a super fast egg! But King Ducky's still going! He's still doing it! F's in chat for King Ducky when he dies! But it probably would. We never know. Oh, the chickens are launching the offensive! They're coming round! Here we go! Oh! That was the last imperial knight! They're about to take the city! Here we go! The last remaining stragglers! You've got so many archers here! Firing out! Oh, look at the arrows! The chickens are not paying them any attention! Oh, hold on! The eggs are coming now! The last foot soldier! There he goes! The last imperial knight!  Can he?  I don't think he killed a chicken. Oh, there's some knights coming to the aid of the archers! Are they killing any chickens? It's hard to see through a flurry of feathers and eggs! Maybe one chicken died. I can't even see anything. Oh, God! Look at this! You've got some cowardice at the back here! Oh, this game promises to deliver some amazing battles. Actually, yeah, you can see the imperial knights kind of just stuck behind the archers there. You don't want to go out there! There was nothing but death! The coward arrived! He goes! He's shooting them! Where's King Ducky? Oh, King Ducky is still here! There is a huge mountain of bodies! I can't even smug of them! They're in blood! Ah! Finally an effort, King Ducky! I'm surprised that many chickens have avoided all these!  Are the eggs even reaching? There's that many bodies. I don't think the eggs are reaching. Are they? Oh, no, I think they are. Slowly. Yep, they killed them one by one. Oh, Keanu Reeves. Oh, every now and again a knight braves the wilderness. Oh, look at him! He's moving! He's trying to dodge them! Oh, there he goes! Look at this brave knight! Look at him! Oh!  Humanity never saw this coming! The chickens revolve of 18 AD. Oh, BC, God knows. This could be AD, maybe it could be. Lord knows. I love how he's trying to do some cool dodges. Doesn't even have to reload those guns. But it is just death out there. They think it's snow. Forecast calls for a 90% chance of eggs and a 100% chance of death. Led by their fearless leader, King Ducky. Will King Ducky be able to take on Keanu Reeves? I don't know. He's taking a lot of damage. He's been out here for a long time. He doesn't do that much damage, but he's been taking it. Look at him go! So apparently there's been a lot of blood here, but look at this, there is just death here. As soon as you can see the pile of knights, they're literally piling up. And the symphony of sound effects through the chickens. Right, we need to see where these mantis shrimp are. Are they just stuck in the back? Wait, is that the noise they make? So the mantis shrimp, the patient is doing it. They're slowly waiting their turn, but look at how many chickens there are. So if we go up, this is what the battle looks like.  I should have sent them to hold, not God. I wanted Keanu Reeves right up here so that everything had to go and find them. Oh, they have completely surrounded them. Oh, but wait, what? The eggs aren't hitting them? Wait, what? Oh, the eggs are falling short. Yeah, majority eggs are falling short. That is so weird. Oh, that guy's taking the eggs. Oh no! They're sort of hitting the back of them now. They've gotten closer. The mantis shrimp have pushed them a little bit forward.  Oh, some eggs are firing through. Oh dear! Archers are now taking hits inside of the keep. Brogue eggs are splashing through and as archers are dying it's making more room for the night but they all need to go together. This single file technique can only work for Keanu Reeves. Oh! A little bit of a... Oh, wow! Whoa, what's going on? Oh, the mantis... There is a mantis shrimp here! He was hitting those dudes into the sky! Ha ha ha! Oh God, if some mantis shrimp get into here... Oh, there is! There is some mantis shrimp. Oh God!  Oh, they're coming to King Ducky's rescue! I didn't need your help, you know. Oh, an Imperial Knight got in here! Oh my God! And that is it! There's only two left! One left and that's it! King Ducky! Where is he? Hi! Where is he, that brave soul? I don't even know. He was here a second ago. Did he die? I don't think he did die. He was there! He's probably running in with the rest of them! Tell me if you see a duck. King Ducky's got to be here somewhere. Keanu Reeves! I don't think there's anywhere to be seen! As he died, he might have died! There's only so many eggs that Keanu Reeves can eat before he dies! And finally the Knights are doing their best! But the mantis shrimp are coming in and just whacking them! They've got to hold the chicken egg, the crumbled egg tornado would be! It's not looking too well. Each one of them knows they're going into certain doom. And some of the archers are now completely backed away. They're like, the key pitch is taken! There is 10,000 of them there! Oh, he's slow-mo, right? Press P to toggle slow-motion. Oh, there we go! Oh, look at all the eggs! Oh, this is p- Oh no! He's dead! No! What is over here? Oh, you've got a knight! And you've got some shrimp! Oh, no, he dies! Look at all this! So much death! Is Keanu Reeves dead? I think he might be! I don't see him! Is he underneath all these bodies somewhere? War! War never changes! First F while pointing at a unit to possess. Ha ha ha! Who will be mine? Yes! I am an archer! Look at me go! Right, we've got this. So, C to battle cry. We need to go up here. This is it. Look at them! There's so many! Are they even firing? God knows, can I jump? I can't jump. Oh, I did damage! Look, she got one! Yeah! Oh God, the- Oh no, the keep is lost! Hit by something! Oh, and I'm rolling! Indeed! I don't know where I'm going! All right, guys! Oh, there I go! Bye! Are they through? Oh, gee. Imagine if you were in this battle and you saw this, you'd be like, Oh, there was no hope! There was no hope for anybody! Use the door! Open the door! Door! God, imagine just seeing that and like, yeah, instant death. Ah, I got this! Come on! Battle cry! Just dead. Just dead. Straight away, man. Yeah. It's not looking so good. Oh, it's King Ducky in! King Ducky is in! Made it to the fight! I want to be King Ducky. I want to be King Ducky. Hold on. King Ducky! Look at my amazing amount of health! Go, Ducky! Yes! We can do it! Yeah, you may hurt me, but you can't, because I'm wearing a helmet! I'm going to get this guy. I'm going to get him. I'm going to get him. Ah! I need to eat. Oh, 4 million damage! Did all the toes! That's the weak spots! Ah! Yes! I've led your knights away! Now there's nobody defending the front of the keep! This is freaking Monty Python! It's the wear rabbit! The wear, Ducky! Go! Right, what's happened to the front while I did that? Oh, the mantas shrimp. Look at them run! As soon as they hit the arches, that's it! They go flying! I kind of want to be a mantas shrimp. Hold on. Yes! Yes! Mantas shrimp is me! Oh my God, there's nothing you can do! I'm going to say, Oh, I'm a mantas shrimp! So much death! No! And eventually, it consumes you. Yeah, it's over. There is nothing left of this kingdom, but rotten eggs. Oh my God! Just absolutely decimated! Look at them go! Then you can stand a chance to find yucca everywhere. The final archer! Oh, and now where do they go? Where are we running, boys? I want to run with you. Let me be part of your shrimp brethren. I want to help the duck king. I'm going to help the duck king! Come on! Where's my king? There he is! My lord, my liege. I've got your back. For too long, these humans have polluted our waters. Ah! T1! The battle is over. The kingdom has been taken. Blood has been spilt this day. But it was for a reason. This day shall be remembered for what it was. A purification of this world. May the chickens shrimp and our king ducky be forever in peace. Bye! Oh, we need to do one more, man. That was so much fun. Hell, yeah. It's beautiful. The hell's that? God powers selected. Non-num keys or mouse wheel. Shotgun smite.  Oh, okay. Well, I have certain God powers I didn't even know about. So hello. Welcome back. This time we have an amazing amount. 200,000 duggies. We're led by, of course, King Dog. He was had a little bit of an nerve because he was way too powerful last time. And now it does, like, 1,000 damage and has 100,000 health. So it should be able to be killed, I think. Also joining them is, I think over here. God, because, yeah, there's 200,000 of these dogs. There's also like 1,000 chickens because I think they're a bit OP with all those eggs. A bit too many. And all the way over here to where my flood has kind of went. Is it still? Is it going to hit them? If it does, is it going to kill them? Please don't kill them. I didn't know what I was doing. I swear. Oh, it stopped. Oh, fantastic. Well, we'll see if that makes a difference in the battle. We have 10,000 Roman soldiers led by, well, actually, nobody. We've also got, we'll call these conscripts at the side, as well as some freakin' catapults as well. There's a legion of, yeah, there we go. A legion of Romans, a legion of archers as well. I mean, no, there's going to be too much of a difference because if I blast a shotgun wave, how many is that going to kill?  They poop in their feathers. Oh, that's why we didn't see any dead bodies. Okay, let's go. Let's stop this battle. I don't even know where King Ducky is. What is one of these? No, the Romans are going to touch the water and will they die? No, no, they're sort of wading through the water. That's good, yes. And then all of a sudden... Ah, shotgun! Well, that will switch into slow mode. Yes, look at them. Look at all these Romans. And we've got, I think, 10 catapults as well. Yeah, you may as well get them some heavy, heavy lifting artillery, because why not? Here it is, the first fight. Yo, that's a duck on two, three, four. Oh, ducks are dying everywhere. Oh, oh, oh. Oh, there we go. The first kill of the ducks. That's not all. Look at them. There's so many of them. I mean, look at them. Oh, the catapults are hit now. They're firing. The arrows are flinging through. There's a lot of dying ducks. Like, every puff is a duck. And the catapults are killing, like, 20 ducks at a time. So, as you can see, almost 1,000 ducks have died. And almost 200 people have died. They need to hold the line. Don't let the ducks break through. Look at these. These are Romans, though. They've got armor on and big shields, and a lovely big feather on top of their head. But the ducks, however, also have a helmet. So we have to bear that in mind. Oh, hold on. We should take control of a Roman soldier at the front. Here we go. What's it like if he just runs into all the ducks?  Do not underestimate the ducks. You will not make it very far. There is so many. It's like a tidal wave of ducks. Say nothing. There is also a tidal wave of Roman soldiers. And they also have archers, which are helping. And catapults. There they are, hidden in the woods, keeping out of reach of the scrambled egg omelet, shooty things. Oh, hold on. Somebody's broken through, have they? What's going on here? They're running away. Why are they running away? I'm so confused. You've got to protect your catapults. Protect the pults.  What's happening? Have they decided they've got this? I mean, definitely. And look at the plumage just going up there. Oh, the catapults destroys them. But as soon as a plunge of a stone blows up loads of ducks, there's more to fill in this space of where they've fallen. I say, brethren, way too much, don't I? Brethren, yes. There's 200,000 small ducks. One will eventually dip in your toes and you'll die. Where's the advances of the other ducks? Oh, they're coming around. They've killed a catapult. Oh, this isn't good. Oh, there's too many of them. Look at this. Oh, it's like freaking Dita being eaten by the Cops of Nathus in the Lost World. He might be able to kill one. When a bunch of them pile on, I don't know how long he's going to survive. God, he's down. Oh, no, there's another dude. Oh, they're not going for the catapults. Well, I guess nobody said they had brains. They definitely have the numbers, though. Look at them go. They need to reinforce that flank. They've already lost, like, two catapults. There might just be one catapult, though. Oh, you can actually see the end of the duck horde. Look at all the explosion, man. It's a thing of beauty. And you see a poof. Oh, the Romans are coming in now. All the few ducks that try to Leroy Jenkins it are now just instantly dead. They tried their best. They really did. They got some catapults. They're still kind of pouring down. If they keep this amount of reinforcements up, the Romans will not know. Oh, one guy got caught out. This is it. It could be good night for them. Yes, they got a victory for the ducks. We've got a side of the duck, though. Come on. I want to be one of you. I'll be turned to them. There he is. Hold on. Let's do the war cry. Oh, OK. There we go. Go, Ducky. Go, Ducky. Go. Are you doing any damage? No. Well, I think I died. Did I pop? I think I popped. Yep, I popped. Yep, I'm gone. They're still coming down. Oh, what's going on? Oh, these archers. OK, yeah, I forgot about that. There's loads of archers still firing into this mess. Did you call a cowardice to stay this far behind? Or just smart. Either or, I suppose. Oh, poosh. Oh, my God. The war started here. The duck swarmed around. And the Romans have pulled it all the way back, all the way up the hill. And look at that. There was a lot of death here for a while. I feel like King Ducky's died. I don't know where he died, but somewhere. Somewhere he met his end. I love that they are still just floating in. Just because they die so. Oh, look at them go. Once they're falling. Whee. They don't die when they fall. That's good. What if we just opened up a line? They still, they just flood in the Romans. It does not help. We're going to flood. Let's put a little bit of a flood at the top. Yeah. Yeah, she comes. Maybe a little bit more. There you go. Roosh. Is this going to be the end for a lot of ducks? Or is it going to push them? I don't even know what this is going to do. Oh, no, it doesn't seem to be doing much actually. Is it? Is it going to push the Romans down? No, it's like nothing happened. Well, that's interesting. There's still water down there though. I guess maybe it drowns them. Oh, it actually washes the blood. Oh, that's good. Making tough stains disappear like magic. Oh, look how close they are now. They can see victory inside from the front line, the end of the duckies. They used to go on for an attempt, and now it doesn't. This line's thinning. The line's thinning. They're coming round. The Romans have got the advantage. Oh, they're falling over. Look at the roll. Look at this guy. I should do that with a full armour on. Like a full set of armour on his shield and everything. This is strong. Maybe this is where the ducks will pull their numbers, and maybe the Romans will push in from the north and then the ducks will curve round from the south. If you look at this, look! There's only a couple of Romans here, and they're about to break through. So yeah, they may progress from the left flank, because you can see them coming round there, but we're just going to turn the battle from horizontal to vertical, like the other way. Yes! They've broken through and they've split the battle up. Oh, you hate to see it. So now this is going to be its own battle. The ducks are kind of trying their best. Where are the chickens though? What are you doing? Die! Why are you not doing anything? Yes! There we go, the chickens. All it took was some motivational death. Get moving! It's strong. The Roman side here is super strong. Duck side weak, but then over here, duck side strong. Roman side weak. Yeah, this is it. This is what you want. If your team duck, there's a couple of Romans holding the back line there. Oh, the chickens are coming in now. There you go. They're getting their back up, scrambled eggs and everything. Oh, there you go. A little vanguard detachment going in to just try and take on the ducks. I'm sorry, the chickens, but they are just being obliterated. The ducks could have used this so long ago. Oh, now I'm not sure. Now that the chickens are involved, I'm really not sure how this is going to go. Yeah, look at this. There's not many ducks on this side, but now that the chickens are involved, maybe if we take control of just one guy. Yeah, look at them. They're going around. Oh, they're pushing forward. Yeah, they're distracted. Go, go, go! Die, chicken! No! Die! Kill him! Kill him! No kills yet. One kill. The ducks. Oh, yeah, yes, yes. Oh, the chickens have done their best. Oh, and I'm dead. I don't know. When this match started, I thought it was going to be a clear victory for the ducks. The Romans have proved me wrong time and time again. And now I think most of the ducks are dead and they are starting to launch an offensive over at the chickens. There's only a couple of ducks to stop them to hold them away. Oh, they focused fire. That was good. But this is it. I don't know. Oh, another focused fire on the left there. Oh, he didn't get close enough. And now... Oh, there's a lot that's hadn't trickled in here. There's a little sacrificial hoisin duck patrol. Hadn't gone in there. Then the chickens surely would have been done for, but they've plugged them up and now the eggs can just quickly just patch them up. Oh, the last Roman! What's your thought?  Oh, that's it. They split up the battle. The ducks have lost this one. Oh, they're all going to go. They've surrounded the Romans with coil brown. And that's it. All the ducks are dead from that side. Oh, the right-hand side that looked so strong. Oh, no! This is it. This is the end for the chickens and the ducks. They did so well. They lost 10,000 troops these Romans did. But this is it. The final bit. There's only one thing the ducks can do now. Let's call in... Oh, man, that was beautiful. Oh, the Romans are still losing. How far did that blast go on for? Did it kill all the archers? It did. It killed all the archers. All of the catapults. Everything, I think, died. Even the Romans that were over here were trying to scale the cliff for whatever reason. Met an undimely demise. You can see the swathes every time a Roman advance approached and got battled thrust back by eggs. It tried time and time again before they finally were able to snatch jaws of victory. No, not that one. So, guys, if you've enjoyed this video, leave a like. Let me know in the comments. What kind of troops we should face up against or try and just kind of a lot of things we could do. We've only done two so far. If you enjoyed it, leave a like. And until next time, I'll see you cuties later. Oh, wait, battle duck won? What?


Income Tax 2022-2023 Education Credits Overview. Let's do some wealth preservation with some tax preparation. Most of this information comes from instructions for Form 8863 Education Credits American Opportunity and Lifetime Learning Credits Tax Year 2022. You can find on the IRS website irs.gov, irs.gov, looking at the income. Support Accounting Instruction by clicking the link below, giving you a free month membership to all of the content on our website broken out by category further broken out by course. Each course then organized in a logical, reasonable fashion, making it much more easy to find what you need than can be done on a YouTube page. We also include added resources such as Excel practice problems, PDF files, and more like QuickBooks backup files when applicable. So once again, click the link below for a free month membership to our website and all the content on it. Tax formula, we're at the bottom here looking at the credits area. Remember in the first half of the income tax formula is in essence an income statement. Although a strange one, the bottom line being the taxable income similar to net income, the bottom line of a normal income statement. We then calculate the tax on the taxable income, not with one rate, not with a flat tax, but instead with a progressive tax system to get to the tax before credits and other taxes. Then we're finally getting to that credit area as well as other taxes, which could be like self employment tax, for example. Then we have to deal with the payments, which will be the format of withholdings or estimated tax payments to get to the bottom line tax refund or tax due. Remember, credits are like deductions in that we like them both. But if we can get a dollar credit or a dollar deduction, we would have rather have usually the dollar credit because usually we would get the full dollar benefit as opposed to a dollar deduction, which would simply be decreasing by a dollar taxable income. The benefit would be dependent on our tax rate. Also remember that the credits down here are broken out into the non refundable and refundable credits. The non refundable credits do not take the tax liability below zero. The refundable credits do making the refundable credits using the tax code more like a welfare or benefit program as opposed to a tax system. Once you go past that point to the refundable part. Okay, reminders about the education credits. Limits on modified adjusted gross income, the MAGI. Remember that as we look at these credits, the income, as income goes up, sometimes the credits will phase out. We don't base that on the gross income, but rather the AGI, the adjusted gross income. M just means that we're going to take that AGI and modify it for certain things related to this particular credit. So it's pretty much like the AGI slightly adjusted, in essence. So the lifetime learning credit and the American opportunity credit MAGI, Modified Adjusted Gross Income Limits are 180,000 if you're married, filing jointly, 90,000 if you're filing single, head of household or qualifying surviving spouse. See table one and the instructions for line three or line 14. Then you've got the form 1098T requirement. That's the form that the financial, I mean, the educational institution, the financial department of the educational institution will typically give you reflecting the payments usually being the tuition. So to be eligible to claim the American opportunity credit or lifetime learning credit, the law requires taxpayers or a dependent, dependent on who had the education to have received form 1098T tuition statement from an eligible educational institution, whether domestic or foreign. That's kind of similar to like a W-2. For example, the institution is going to be providing this to you. The government also is making them provide it to them so that they are basically looking over your shoulder. That's why it's kind of a requirement because they can basically double check that. However, you may claim one of these education benefits if the student doesn't receive a form 1098T because the student's educational institution isn't required to furnish a form 1098T to the student under existing rules. For example, if the student is a qualified non-resident alien, has certain qualified education expenses paid entirely with scholarships, has certain qualified education expenses paid under a formal billing arrangement, or is enrolled only in courses for which no academic credit is awarded. Alright, so if a student's educational institution isn't required to provide a form 1098T to the student, so you may claim one of these education benefits without a form 1098T, if you otherwise qualify, can demonstrate that you or a dependent were enrolled at an eligible educational institution and can substantiate the payment of qualified tuition and related expenses. So the bottom line is you will normally get a 1098T from the institution. If you don't, you want to check with them to get the 1098T because they're usually going to send one to the IRS as well. If you're in an unusual situation, then you might have some unusual situations where they don't send out the 1098T, in which case you could go to verify and see if you could still claim at that point. So you may also claim one of these educational benefits if the student attended an eligible educational institution required to furnish form 1098T but the student doesn't receive form 1098T before you file the tax return. For example, if the institution is otherwise required to furnish the form 1098T and doesn't furnish it or refuses to do so and you take the required following steps after January 31st, 2023 or before you file the return, you or the student must request that the educational institution furnish form 1098T. So obviously, it's kind of similar to a 1099T. If the person that issues it doesn't issue it or gets it wrong, then you've got to go to them and see if they can issue it, pressure them to issue the form properly because again the IRS is going to get it on their side as well and they want to basically be able to double check things on their side. You must fully cooperate with the educational institution's efforts to gather the information needed to furnish the form 1098T so if the financial institution says I can't do it because you won't give me your address or email or whatever for me to send it to you, well then that's kind of your fault. You have to give them the information. Splendid! Just give your information to Mrs. Pennyapple. It's necessary for them to process the form 1098T. You must also otherwise qualify for the benefit be able to demonstrate that you or a dependent were enrolled at an eligible educational institution and substantiate the payment of qualified tuition and related expenses. The amount of qualified tuition and related expenses reported on form 1098T may not reflect the total amount of the qualified tuition and related expenses paid during the year for which you may claim an education tax benefit. So note the amount on the 1098T you would think the reason the IRS basically requires it is because that will require the baseline amount that you were indeed enrolled in an educational institution. However, that 1098T you would think would generally be reporting the expenses that are related to the tuition. You might have other more expensive expenses that you can basically possibly deduct that aren't on the 1098T maybe but the IRS still wants that 1098T to be a requirement to qualify at all because that's going to give them an idea that you were at least enrolled in the financial institutions. In other words, if you're claiming books or something like that that you had to purchase or something for the financial and for the school then they would like to at least prove that you'd paid tuition to the school and therefore it would make sense that you're buying books for school. If they can't confirm that then it'd be hard for them to confirm anything. Okay, you may reflect the total amount so we looked at that. You may include qualified tuition and related expenses that are not reported on form 1098T when claiming one of the related credits if you can substantiate payment of these expenses. You may not include expenses played on the form 1098T that have been paid by qualified scholarship including those that were not processed by the university. So then the amounts that are on the 1098T you could have some issues with them when we get into like the scholarship where they paid by a scholarship not by you in that case they weren't really an expense to you and you would think you wouldn't get a credit related to them in that case because they were paid by scholarships so caution to claim the American Opportunity Credit you must provide the educational institutions employer identification number EIN on form 8863 you should be able to get that from the institution. You should be able to get this information from form 1098T or form 1098T when you pop like that or the educational institution ban on claiming the American Opportunity Credit. If you claim the American Opportunity Credit even though you're not eligible you may be banned from claiming the credit depending on your conduct. So see the caution statement under American Opportunity Credit later. So these credits are the types of things that like scammers and people that are trying to commit fraud or something like that on the taxes are likely to try to take advantage of and so the IRS is going to put restrictions on possibly or ban if they feel that you've tried to abuse the American Opportunity Credit. So taxpayers identification number the TIN needed by due date of return. So if you haven't been issued a TIN by the due date of your 2022 return including extensions you can't claim the American Opportunity Credit on either your original or amended 2022 return. Also the American Opportunity Credit isn't allowed on either your original or amended 2022 return for a student who hasn't been issued a TIN by the due date of your 2022 return including extension. Hey, no extension cards. Then we've got the form 8862 may be required if your American Opportunity Credit was denied or reduced for any reason other than a math or clerical error for any tax year beginning after 2015 you must attach a completed form 8862 information to claim certain credits after disallowance. So that would be hopefully an unusual situation to your tax return for the next tax year for which you claim the credit C form 8862 and its instructions for details. Purpose of form use form 8862 to figure and claim your education credits which are based on adjusted qualified education expenses paid to an eligible educational institution post secondary. That's the general concept post secondary institution for 2022. There are two education credits. So here's where it gets a little bit confusing because now we've got these payments to education benefits. Remember the general rule of an income tax is that we would get to deduct. You would think those things that we needed to help generate revenue but then the tax code has all these other things that they put in place to try to incentivize people in the form of either deductions or credits and both education being one of those and you can imagine you know multiple different laws where they kind of overlap on could you take these expenses as a deduction could you take them as a credit and now we have these two credits they kind of came came about as time has passed and we kind of think of them together now because one credit is typically better than the other if you qualify it although most stringent to qualify for so the credits are then the American opportunity credit part of which you may may be refundable meaning it takes the tax liability basically below zero and then you've got the lifetime learning credit which is non-refundable. So in almost every way if you qualify for the American opportunity credit it will be better off. It's usually a bigger dollar amount and you may have a refundable portion if you need it taking the tax liability below zero still resulting in a benefit or refund even if you don't own a tax past that point whereas the lifetime learning credit is usually a lesser dollar amount and non-refundable it's not going to take your tax liability below zero. So when thinking about qualifying for these credits we usually think of them kind of together now you know you're going to try for the American opportunity credit and then default to the lifetime learning credit is the general idea. Okay a refundable credit can give you a refund when the credit is more than the tax you owe even if you aren't required to file a tax return a non-refundable credit can reduce your tax but any excess isn't refunded to you. Both of these credits have different rules that can affect your eligibility to claim a specific credit these differences are shown on table one. So here's basically a list let's go through a quick kind of rundown of these two credits remember the general idea though being that you're going to think first if you could take the American opportunity credit and then lifetime learning will go through each of them in detail but when you're imagining them in your mind that's your thought process you're going to try to see if I can get one then the other usually. Alright so the maximum credit for the American opportunity credit up to 2,500 credit per eligible student whereas the lifetime learning credit up to $2,000 credit per return big difference per student per return so the next one limit on modified adjusted gross income or the MAGI the phase out of your income level phase out 180,000 for the American opportunity credit if married filing joint 90,000 if single head of household or qualifying surviving spouse whereas the lifetime learning credit also 180,000 if married filing joint 90,000 if single head of household so same items there refundable or non refundable American opportunity credit 40% of the credit may be refundable taking the liability even below zero resulting in a benefit resulting in a refund even if you don't owe any tax passed that point the rest is non refundable so only 40% whereas the lifetime learning non refundable credit is limit to the amount of tax you must pay on your taxable income next one we have the number of years of post secondary education so the American opportunity credit available only if the student had not completed the first four years of post secondary education for 2022 so we're limited there whereas the lifetime learning available for all years of post secondary education and for course to acquire or improve skills so much more expansive on the lifetime learning there which means you might cap out on what you can take in terms of the number of years American opportunity but you could keep on possibly taking the lifetime learning after that point number of tax return credit available so American opportunity credit available only for four tax years per eligible student so you only have the four years that you could take that because that's the general time frame of post secondary college in essence and then on the lifetime learning available for an unlimited number of tax years then you've got the type of program required American opportunity credit student must be pursuing a program leading to a degree or other recognized education credential whereas the lifetime learning credit student doesn't need to be pursuing a program leading to a degree or other recognized education credential and next one number of courses American opportunity credit student must be enrolled in at least half time for at least one academic period beginning during 2022 or the first three months of 2023 if the qualified expenses were paid in 2022 you've got a bit of that timing difference we'll talk about more detail later but that's the general idea lifetime learning available for one or more courses so much less restriction on the lifetime learning then the number of courses that you need to take for the American opportunity credit felony drug convention conviction as of the end of 2022 the student had not been convicted of a felony for possessing a distributing controlled substances so they kind of threw this one in there has nothing to do really with education and whatnot but you know they threw that in there whereas the lifetime learning felony drug convictions don't make the student ineligible qualified expenses tuition required enrollment fees and course materials this is the lifetime learning side that the student needs for a course of study whether or not the materials are bought at the educational institution as a condition of enrollment or attendance whereas the lifetime lifetime learning credit tuition and required enrollment fees including amounts required to be paid to the institution for course related books supplies and equipment so this one's more broad on the American opportunity credit side of things because these are the amount of expenses which means the possible deduction is more likely to be higher because you have more things that might be included as qualified expenses a little bit more restricted a lot more restricted on the lifetime learning credits then we've got payments for academic periods the American opportunity credit payments made in 2022 for academic periods beginning this is both of them into in 2022 or beginning in the first three months of 2023 so you've got this timing thing because you might prepay you might say hey look I paid for it in 2022 but the classes don't start until 2023 well for usually we're on a cash basis for taxes so usually that that's going to be okay but the IRS doesn't want you to take advantage of that by coming up to an agreement with the school that you're going to pay like five years in advance to take a bigger credit this year or something like that so so you have this limitation on that kind of cut off and then we've got the TIN needed by filing due date American opportunity credit filers and students must have been issued a TIN by the due date of their 2022 return lifetime learning credit students must have been issued a TIN by the due date of the 2022 return and then the educational institutions EIN American opportunity credit the you must provide the educational institutions employer identification number that that's usually going to be given to you in the form but that's the EIN it's going to be put on form 8863 usually not a problem and lifetime learning credit educational institutions employer identification number is not required on form 8863 alright who can claim an education credit you may be able to claim an education credit if you your spouse or a dependent you claim on your tax return was a student enrolled at or attending an eligible educational institution so you're talking about obviously if it's yourself then you paid for the for the educational expenses if it's someone that is a dependent that's when it gets a little bit more confusing but you would think that if you were claiming them on your tax return and you paid for their education expenses then they would be included too so once again you may be able to claim an education credit if you your spouse or a dependent you claim on your tax return was a student enrolled at or attended an edgy an eligible educational institution for 2022 the credits are based on the amount of adjusted qualified education expenses paid for the student in 2022 for academic periods beginning in 2022 or beginning in the first three months of 2023 academic I'm an academic period an academic period is any quarter semester trimester or any other period of study as reasonably determined by an eligible educational institution if an eligible educational institutions uses credit hours or clock hours and doesn't have academic terms each payment period may be treated as an academic period for details see at academic period in chapter two and three of publication 970 so the academic periods are standardized to some degree but different institutions have different different periods but usually quarter semester trimester are what you will see who can claim a dependent's expenses if a student is claimed as a dependent on another person's tax return all qualified education expenses of the student are treated as having been paid by that person therefore only that person can claim an education credit for the student so once again if a student is claimed as a dependent on another person's tax return all required education expenses of the student are treated and having been paid by that person therefore only that person can claim an education credit for the student if a student isn't claimed as a dependent on another person's tax return only the student can claim the credit which kind of so it kind of of course kind of makes sense here obviously if the student is a dependent of someone else you would think then part of being a dependent would be that they're they're paying over half of the of of the expenses and so on so you would think whoever's claiming them as a dependent would be the one likely being able to take the credit whereas if the student isn't being claimed as a dependent then they would be able to claim themselves or take the credit in that case so expenses paid by a third party qualified education expenses paid on behalf of the student by someone other than the student such as a relative are treated as paid by the student which makes sense because if it wasn't that way let's say you had you know a rich uncle or something like that paid for the tuition for a student then who would get the credit the uncle couldn't because they're not claiming the student as a deduction and and that would be a mess right so that that would mean they would have to give the money either to the to the parents who are claiming them as a dependent or the students themselves and then the student would have to pay for the expenses but the uncle might want them to as a condition to spend the money on school or something like that so it would so it would kind of make sense that someone would get the credit and whoever's claiming the student whether it be the student themselves or the parents for example and not the third party you would think would still be able to get a benefit of the credit okay so once again qualified education expenses paid on behalf of the student by someone other than the student such as a relative are treated as paid by the student however qualified education expenses paid or treated as paid by student who is claimed as a dependent on your tax return are treated as paid by you so if this if the student paid for the tuition and the student was was a dependent of someone you would basically it wouldn't be right you would think to say well now the student can't claim the deduction because they're a dependent but they're the one that paid the tuition and now the parent doesn't get that even though as a dependent they you would think that they are still providing the financial support of the student so again it's just kind of a logistical thing in terms of who actually paid the the tuition you would think someone would get the benefit and you would think the person who gets the benefit is the person who's claiming the student as a dependent or the student themselves if they're not being claimed as a dependent anywhere else therefore you're treated as having paid expenses that were paid by the third party for more information and an example see who can claim a dependent's expenses in publication 970 chapter 2 and 3 we'll take a look at that more later most likely who cannot claim a credit you cannot claim an education credit on a 2022 tax return if any of the following apply one you're claimed as a dependent on another person's tax return such as your parent's return so if you're claimed as a as a dependent on someone else's tax return then you would think that there are the ones that might be able to get the benefit of the credit to your filing status is married filing separately so we've got the same kind of thing if you're married you can't go back to single you gotta file a married filing joint or married filing separately the IRS is optical of people married filing separately taking advantage of the credit especially with the AGI limitations and the phase outs so often times you lose some of the credits that you may otherwise get by filing married filing separately therefore it would be more beneficial generally to file married filing joint if you're subject to these kind of credits so 3 you or your spouse were a non-resident alien for any part of 2022 and didn't elect to be treated as a resident alien for tax purposes for your MAGI modified adjusted gross income your income level is $180,000 or more if married filing jointly or $90,000 or more if single head of household or qualifying surviving spouse with dependent child 5 the student has not been issued a TIN by the due date of their 2022 return including extensions generally your MAGI modified adjusted gross income is the amount on your form 1040 or 1040 SR line 11 your AGI however if you're filing form 2555 this is where the modification comes in the M foreign earned income or form 4563 exclusion of income for bona fide residents of America Samoa or are excluding income from Puerto Rico add to the amount on your form 1040 or 1040 SR line 11 the amount of income you excluded for details there if you have to dive into that more detail look at publication 970 tax software hopefully can help out with those situations as well.