 So these are the flow and other thing is runtime errors. It's very hard to find runtime errors because actually sanitizers are runtime tools. They use error when we execute the code, but we can't execute each and every packet. I tried to do it by just installing every packet and try to run it. I broke my session two times because of this, but there's no other way to do it right now. We have to find some better way for this. The results for this I've dumped here. I've allowed to make it much better to read. After this, it was a manual process, so we have to add it to the device build system. This is made by Paul Togliment, and we need to add our ASAN passes to it. After some time, after every time, it will fetch the source packages, it will add the ASAN flag, and it will build the dev files, and it will upload it to some repository. So we are planning to make a repository in which there are all the devs which are filtered by ASAN blank. The next thing will be to add other sanitizers like memory sanitizers and thread sanitizers. Other than that, we need to show which are the errors. If we can provide some solution, we'll give otherwise we need to just file box for those. These are the links if someone wants it. Thanks to these people which helped us, Gilliam and Balin for the sanitize flag, and David Suarez for helping us with the build system, that is Amazon Cloud, and Clement for Dubai. Any suggestions and questions? Have you tried using the auto package test? Sorry. There's a tool in Debian auto package test which specifies some ways that packages should run. Like if you had package tests for the binary called cat, you might have a auto package test rule that indicates you can run cat in this way, and then it'll output this thing. I guess I'm pointing out that might be a way to... You might be able to use the auto package test running infrastructure to run ASAN-enhanced versions of the packages. Okay, thank you for that. Any other solutions? No other questions, then please round of applause. Thank you. Hello. One, two, hello. So, hello. And this is the agenda about me, the project. What is the problem? The project goal, the tool. My job in Google Summer of Code is the project on the future. Who I am, yeah? My name is Thiago Ribeiro and I'm from Brazil. I graduated in soft engineering. My university is the University of Brasilia. This is my first depth call and my first time in Google Summer of Code. And I like rugby, DevOps, tests, coffees, packing, and more, okay? My GSOP project is Automated Configuration of Package Web Applications. Okay, the project is check. Check is self-hosting applications kit. What info's just GitLab.com, check, check. And what is the problem? If you configure a new application package in Debian, you need some steps to configure and deploy. These steps are, install the package, configure your servers, configure your files, configure your database and more. These tasks is like easy to experience users, but to inexperience user, maybe not. Then, so why isn't there some tools that do all that? Then, the project goal, create a tool to automate the installation and configuration of package applications. Then check, check is computed of Ruby code, shell scripts, shell recycles, NGX calls, and Debian packages, of course. What do checks do? Check, configure web servers, NGX, configure application, configuration files, generate SSL certificate, enforce ATTPS if you have support. Configure database, configure hostname, and mail server. Positability, multiple instances of application. And example, if you need to on-cloud the instance, like in mycloud.prev, in the same servers, using unique package, totally independence, check possibility of this. My job in summer of code, my job in summer of code is write, shell recycles, and on-cloud, work to on-cloud, to WordPress, to mail server, and mymoin, we're in progress now, and scripts to generate self-signed certificates for SSL cell applications evolve check tool, the Ruby plus aspect tests, and send patches to packages if necessary. Example on-cloud, choose check is very easy, we have two ways, first way, web interface, but we're working progress now, and just click and use, yeah? The second way, in terminal, we have a syntax check install app name, hostname equals your hostname, and path equals your path. Example, check install on-cloud, and hostname equals devconf.cloud.pub, and in few seconds, the application is done. If you need more information, please go to presentation for my mentor, Antonio, where is Antonio? And it's here, the presentations package, the first software app for end-users, Saturday, 2 p.m., we'll hide all better. Thanks to Antonio Tercero, we're very fast, right? Thanks to Antonio Tercero, Paulo Mereles, my teacher in Brazil, Lucas Canachiro, Debian, of course, Auslan, Tafeed, where's Tafeed? No, okay, I love this guy, but he's here. If you have interesting, I can show how it works, and if you find me in IRC, my nickname is Tiago VSK, and that's all folks, thank you, he's very fast. Pardon, oops, he apparently already got the round of applause, but we missed the questions. Any questions, no questions? Then I do have one, keep the microphone. Have you talked with people from the Freedombox project, because one-click application installation could be really interesting for things like the Freedombox? Oh, sorry, Tercero, can you help me to translate it? No, sorry, my English is not good, but it's my first experience about this, and I learn more, but I will speak with him. It's a good opportunity to me. Okay, the guy there's there. Hi, thanks, I have two other suggestions for projects doing similar things. One is called, why you know host, why you know host. I think they're also Debian-based, so I'm curious if you've looked at what they're doing, and is that something that is similar? Tercero, please. Sorry, guys. Yeah, I did look at it. The issues that they kind of reinvent packaging, so they do their own thing, and we are basing everything on Debian packages, official Debian packages, so we're just doing the final mile to get just out of the box experience for users. And I'm also giving a talk on Thursday about a very different approach called Sandstorm, so maybe I'll see you there, and I can talk with you more about that later. Oh, thank you. This was the third and last talk from JSOC students that I have received. Are there any other students in the room? Yeah? Can you maybe stand up and talk about your thing for some minutes? My name is Lucas Canashiro. This is my second year as a JSOC student, and this year, last year I work in the BCI, CI, CI.debian.net, and this year I work with the Bio Project, where this is a smart beauty system where we build some packages and realize some kind of aesthetic analysis and other kind of stuff. We run some checkers like Lynch and like CBP Check, PyLint, and JSHint, FindBugs, and some kind of aesthetic analyzers, and our goal is analyze the source code and centralize this report, these things to upstream and maintainer in the same place. And my work initially was added another checkers, but in the middle of the project, we changed our plans and I worked more in backend and another kind of stuff. I added two checkers, they are PyLint and JSHint. We have some problems with JSHint because the license of this software, because of the license and another kind of stuff. And so we use it from the source, not a package of JSHint. And I work with some backend tools, tools like setup users in the machines. We have a claimant to help me a lot during this project and my mentor is Sylvester Lidru, too. Yeah, probably we should refactor the web interface, but I didn't have time to do it. And the next steps probably is connected to the bio with Debian infrastructure because I need to upload the packages manually to test some things. So let me show something. Here you can browse by source or by maintainer. You have some information here about the jobs and we have 17 servers. We have a master in slave architecture and we have one master in 16 slaves. And all these slaves run all these checks and here is the status of some jobs. You can find by the prefix of source here and another links here. Let me see something here. Now let's see out the package test here. You can see some information of the packages, maintainers, architectors, versions and et cetera. You can see the status of all the checkers here. You can see some errors in auto package test package. You can see the log is analysis here. You can access here. We use firewalls. It's a tool that actually is an XML structure where it reports some things. And here in Dev Conf I'm involved with other things and I didn't have enough time to prepare in a better presentation. So is this? Any questions to this ad hoc presentation? Yes, so it looked to me like using lots of tools such as linters and so on. Did you consider using also more heavy duty static analysis like abstract interpretation and so on to find more bugs basically? Yeah, we intend to work more with these checkers but we have some problems in backend that we can't advance with these checkers and improve this kind of things. But yeah, we need to discuss this kind of things and maybe, I don't know. I need you to hold me. Okay, sure. Well, if there are no other questions, we have another ad hoc presentation. So a round of applause for this ad hoc. Hello. My ad hoc project is a Debian dashboard or developer dashboard about me. My name's Harsh Dhaftari. I'm from India. I'm a speaker at Black Hat USA and Picon India. This project is about aggregating all the GitHub issues, all the Bitbucket issues, similar stuff, Debian events, Ubuntu events, et cetera, into one single place. As you can see, this is the dashboard. This is the web interface. Currently I am hosting it on DigitalOcean but by the end of this DevCon, they are providing an domain that is horizon.debian.net so soon you will be able to use this. If you can see, there's an option of new session where you can create a package. You can select the data sources you want. For example, the UDD. You can add as many email accounts of UDD as you want. Second, there is these special events like Debian Summit, like DevCon or Ubuntu local events. Then there are GitHub. So if you want all the issues of a particular person, all the issues in all the repositories of a particular username, then you enter the username of that person. Or else, if you want repository specific issues that is open or closed, then you enter the username slash repository name in the other section called GitHub by repo. Then there is Bitbucket. You enter the same way just like GitHub. And there is Bugzilla where you can search the issues by the keywords and list them as well. In extras, I have given an option to load and remote iCalendar file. For example, if you have any Google Calendar files or anything, then you can directly give the link over here and it will merge all this thing into a single page place. I'll show you the example. For the sake of simplicity, I'm just going to choose about Debian Conference. In the end, there is an option to download and generate. So if you click on the download, the system will generate an iCalendar file and you will be able to download it right then and there. If you create a session, it will generate it will generate a random session ID. You will be getting a permanent URL for this session. So you can dynamically call it any time you want. But the session URL looks pretty big and it's not that easy to remember. So there's an option for get short URL which will use the debian.dev.li URL shortening service and it will generate and shorten URL for you. If you select this, as you can see, you can see the data sources you have selected. Now there's an option to export it as a JSON file or export it as a calendar file. Can you copy this session URL? Session ID, we should visualize. Visualize is an, I have created an online calendar system where if you put your session ID, it will generate a calendar file. It will load the calendar into the online calendar. So you can actually see what's happening in the graphical interface. So that's pretty much of it. I have used AngularJS and Bootstrap for the interface. I've created a web API written in Flask Python 3. So this, I've created a web API, REST API, and I've used that REST API over this interface. So for those who don't want the interface, just want the backend. It's possible to configure that in the GitHub. You can, there's an option. I have used SQL Alchemy, so you can choose any database backend as you want. If you don't want SQL backend, so you can choose a JSON DB name that is, it will be a static file on the file system for the JSON storing the data. Bind port and bind address are the same web interface, URL, IP address and port. Restore all the base URLs for all the APIs I've used to connect the backend, connect the GitHub and BitBucket. So all of them are easily configurable. Installation on your own system is very easy. I've created an online installation. You just have to call that setup file and pass it to Bash. It will create a virtual environment. It will set up all the repositories and everything, fetch the code and configure everything for you so you can plug in play. As you can see, so all the events, I've selected the Debcon, so all the Debcon-filtered events are loaded into the graphic web UI calendar in case if anyone wants the GUI interaction. That's all. Thank you. We only have one minute left, so if you have a question, be it quick. No questions. Then thank you all of the presenters for the projects.