#language en = Student Application Template = * '''Name''': Milán Unicsovics * '''Contact/Email''': u.milan@gmail.com // thesnapdragon @ IRC * '''Background''': I am a fourth year software engineering student at Budapest University of Technology and Economics. Programming and learning about new technologies are my hobbies. In my spare time I write articles in my native language to publicize open source projects. On the list of desirable skills of the project I read Python language, and I was really happy about that, because Python is one of my favorite programming language. I started learning Python by writing plugins and other extensions for open source softwares, one of my successful projects was an Audacious music player extension for Docky. Later, when I became an advanced programmer, I contributed to OpenStack Keystone module, to create a SingleSignOn authentication with SAML protocol (OpenStack is written in Python too). Besides Python (for coding style checkout my random Python scripts [[https://github.com/thesnapdragon/msc-thesis/blob/master/code/chinesepostman.py|1]], [[https://gist.github.com/thesnapdragon|2]]) I love other dynamic script languages too ([[https://bitbucket.org/thesnapdragon/opennebula_extensions|Ruby]], [[https://github.com/thesnapdragon/dinoplayer|Javascript]]), and I am familiar with many other programming languages and technologies, for example [[https://bitbucket.org/thesnapdragon/wikiprocessor|Java]], Erlang, [[https://github.com/kir-dev/torpedo|Golang]], Bash scripting, GTK programming (C, C++, Python) and a much more that I use least frequently. At my university I teach databases and data-driven technologies (relational and NoSQL databases, ORM, JDBC, XML based techniques, database connectivity with Python). I am one of the youngest tutors. '''I think, that I can be the right person for this task because:''' * I am not just a coder, rather an engineer. I can design and implement a good, maintainable software with a good architecture and great performance. * Creating a nice code is very important to me. Every programmer can code, but creating a reusable code is much harder (well use of software patterns). * I am a Python developer, so using best practices and idioms is the default for me. * I am an open source software enthusiast. * I love coding, and the required technologies for this project are my favorite ones. * Debian is my favorite distribution, and I want to use my knowledge to improve the distribution. * '''Project title''': AppStream / DEP-11 Implementation * '''Project details''': The aim of the project is to implement AppStream on Debian. The AppStream project is a cross distribution effort that provides metadata about available applications, which metadata can help to create a common application installer for all distribution. My work is to modify Debian Archive Kit (dak) to be able to handle software metadata. The software's metadata is going to be extracted from software packages (.desktop files and AppStream XML files). After the extraction the metadata is going to be stored in YAML format in the database. In the end libappstream package is going to be extended with a DEP-11 parser to parse the software metadata. If we have time libappstream will be implemented in GNOME-Software. * '''Synopsis''': This project aims to implement AppStream on Debian and to extend Debian Archive Kit (dak) with the ability to handle software metadata. In the future it will be possible to create a unified software-center with some advanced features. * '''Benefits to Debian''': * Various metadata (ratings, reviews, screenshots) will be provided about applications to other applications and users (implementation of DEP-11) * Describing components of a package (provided and suggested packages) * AppStream depending application (like GNOME-Software) to be run on Debian * Creating a cross distribution software-center will be available * '''Deliverables''': * Implementation of DEP-11 in Debian * Ideally a working GNOME-Software on Debian * '''Project schedule''': I can start working on this project as soon as I am allowed to start (even right after the application :). A possible roadmap: . - 0 - Experimenting with the required tools and creating prototypes . - 1 - Extracting package metadata from dak's database . - 2 - Changing database schema . - 3 - Transforming metadata into YAML format and store it in database . - 4 - Extending dak with the DEP-11 generator . - 5 - Extending libappstream package with a parser . - 6 - Making GNOME-Software to be run on Debian * '''Exams and other commitments''': I am doing my MSc degree, that's why I am going to have some exam (few hours per day). * '''Other summer plans''': Maybe a couple of days camping with my girlfriend at a hungarian lake named Balaton. * '''Why Debian?''': I always used Linux: when I was a beginner Linux user I used Ubuntu, later I moved to Debian. It was a good decision, because I think Debian is the perfect balance between useful and efficient distribution and a good source to learn about Linux systems. * '''Are you applying for other projects in SoC?''': No.