 Some guys in the QA team told me, okay, you should really set up duckdiamond.net, which I did, and yes, things began to evolve somehow. Then two years later, the QA team suggested that I should package Duck to make it easier for developers to run the checks, run on the website. And I did an ITP for Duck, and in March, 2014, there was the first initial upload. So in April, 2014, the integration into check, all the things, also known as cats, was done. So you see cats and ducks can work together. And in August, 2014, also the output which comes out from the website, from my website was integrated into tracker.debin.org. You will see it later. Okay, in July, 2015, I started a duck challenge, which some of you might probably heard of, which lasted until the end of DEBCOM 15. Yeah, so how is it working? Basically, I check homepage URLs and email domains and VCS, whatever URLs in the control file, copyright file, unit file, patches files, yeah, several other files. Those checks just run once a day, and I display the results on Duckdiamond.net. And as I said before, the data is consumed by track.debin.org. You see those action needed items. The URLs for this package had some recent persistent issues, so yeah, it's somehow in there then. Okay, and the other side to is the package which works like this. If you run into the source tree, you see that for alien, I do just up get source alien. I hope into the source tree where I'm ducked. For alien, I see that, for example, it says the git repository does not work, or there are some other informational information, like a domain redirection detection, which might be worth fixing. So how is this all working? The internets are heavily used perl and a lot of shell scripting. And usually for the website, I fetch the sources file from my local mirror, and they get the carnival tables from UDD to get all the user names and all the email addresses and the real names. And I extract all check data, so all data I needed for running my checks, and I put it in the geoman queue. That's the first thing I found and seemed reasonable, easy to work with to me. And currently I'm running with three workers because I cannot use more because then I might get blacklisted on some websites because of generating too much traffic. Yeah, so this results in about 40,000 jobs a day, and it takes about 20 hours to run. So you see here, yeah, at 10 minutes past midnight, start when you run with 40,000 jobs, and the duckdamin.net slash munin, you can see the progress for each day. Yeah. Okay, the data that comes out of that, it gets grouped in by person, issues with home page entries, issues with VCS, whatever entries, or by domain. The idea behind grouping by domain was like, okay, if I see that some specific domain is not working, either it's really down and then we just have to wait until it's up again, or maybe there was like a migration from one host to to another, and so it might be easier to just notify the team running, or handling those packages, which all have like the same base URL in there to just move all of them over. Yeah, and the output of all these grouping stuff, it just produces static HTML files, and I use some glue plot for the charts. Okay, so then I come up with this. It's duck.dbn.net. If you want to take a look, eventually look up your name or your packages or whatever, and start fixing it, okay? So, and here's some charts. As I started in September 2004, I even started earlier, but I only have data back to 2014. I started with about 22,000 source packages in total. The number is slowly rising. Currently we are at about 25,000, and the red line is the packages with issues. The peak in mid-2015 was that Sourceforge went offline for some days. Yeah, so currently we have about 1,700 source packages with issues, which is a quite high number, in my opinion. If I try to get percent values of this, I see like, okay, there are currently about 6.5% of all packages which have some issues. The trend line shows that we're actually getting better for whatever reason. So either people know about this or people just fix stuff anyway, yeah. Another interesting thing is, because I collect also the total number of repositories, you can clearly see that Git is on the rise. And subversion is still somehow prominent, but yeah, to me it seems like all new projects either use Git or yeah, I think they mainly use Git for new projects. DAX was mentioned because it was the top three, but yeah, subversion, Git and DAX were the top three competitors for number of repositories. Yeah, you see subversion is somehow stable. I think this will stay there for quite some time. Actually getting lower, very, very low, but yeah, just Git is clearly on the rise. The other side to it is the DAX tool by itself. As I said before, you can just install it up, get install DAX and run DAX in your package source tree. And basically the output is grouped into three error levels, which is O, I or U, meaning okay, information and error, which yeah, for stuff which is okay, it's usually not displayed until you force back to do this. Informational stuff is like, okay, take a look at it. It might be even a false positive or it's nothing that's really making things break, but might be better to fix like you get for example, several home pages are reached only after three redirections and stuff like that. So you just might enter the last one, which is the real one and not like yeah, three hops before. And the error level means really there's something broken. Okay, the current features. Yeah, it just reports all non-200 okay for HTTP or HTTPS, so basically you're else that if you would put them into the browser, you would get an error page. It also reports domain redirection, park domains, I'm using several regular expressions to find out if the website has moved, park, just like the domain grabbing people which just reserve lots of things after they expire. Redirection from HTTP to HTTPS, so you might as well just enter the HTTPS URL. Even redirects back from HTTPS to HTTP, which happened sometimes, which I think is a bad thing to do. Yeah, and it just reports broken URLs in all the other entries like vcrs, it even checks if there are valid mail domains for the email addresses of the maintenance uploaders. I'm not able to check the email address by itself, but I'm able to look up if there's some working domain for the mails and if there's no domain, I'm quite sure the email cannot be sent there. Okay, the plans for the whole thing is currently it's like a bit of a hack on the top of a hack because it just got more and more features and I will clearly rewrite this probably this year. And I'm also planning to do more checks or improve the checks and add some exceptions for some very fancy websites which make my regular expression detection kind of go crazy. Currently I'm running doc.conductor.dev.nec. I'm planning to migrate to doc.dev.org. Yeah, it's still my fault. It will take some time, but I will do it. If there are any suggestions as what you might also think would be worth checking, please drop me a line right here or somehow, yeah. So another thing is this just started as a fun project for me. I started it as I was no Debian developer then and it was really amazing because I got so much great feedback from the Debian people. For my first posting on Debian Devil, lots of people wrote back, yeah, that's great and how about checking this and that and whatever and whatnot and it was really amazing because it showed to me that the community is very friendly to people who want to help. And that's what I think I did. Yeah, and that's really what got me into Debian and now I'm DD and that's someone who still thinks about how he might get involved. Just do what you might think could help the project and just do it and announce it somewhere and then eventually things start rolling. So thank you for your attention. And are there any questions? Currently the output is available on the website as just a daily changing list of names with issues as a text file, just one package name per line. But yes, sure, I can implement that for sure. Should be no problem, yeah. Any more questions? Okay, then. Thanks.