Editing Google Summer of Code 2019 proposed ideas

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
Students interested to participate should check which of the following projects fits their interests and skills.
+
'''GFOSS project proposals for GSOC 2019'''
  
'''Τo communicate with the mentors and ask questions about the projects, students should subscribe to this '''[https://lists.ellak.gr/gsoc-developers/listinfo.html list]''' and post relevant questions. Please follow the [[Proposal Template]]
+
Students interested to participate should check which of the following projects fits their interests and skills. For practical information for students [https://ellak.gr/wiki/index.php?title=Practical_information_for_students visit this '''page''']. For additional information, please subscribe to this '''[https://lists.ellak.gr/gsoc-developers/listinfo.html list]''' and post your questions. The full list archives are available '''[https://lists.ellak.gr/gsoc-developers/ here]'''.
  
For practical information, students [https://ellak.gr/wiki/index.php?title=Practical_information_for_students visit this '''page'''].''' 
+
[https://ellak.gr/wiki/index.php?title=Google_Summer_of_Code_2017_Accepted_projects The GSOC Projects implemented in 2017]  
  
 +
[https://ellak.gr/wiki/index.php?title=Google_Summer_of_Code_2018_Accepted_projects The GSOC Projects implemented in 2018]
  
----
+
== Upgrade UMLGraph with JAva's new doclet API ==
 
 
[https://ellak.gr/wiki/index.php?title=Google_Summer_of_Code_2017_Accepted_projects GSOC Projects implemented in 2017]  [https://ellak.gr/wiki/index.php?title=Google_Summer_of_Code_2018_Accepted_projects GSOC Projects implemented in 2018] [https://ellak.gr/wiki/index.php?title=Google_Summer_of_Code_2019_Accepted_projects GSOC Projects implemented in 2019]
 
 
 
 
 
----
 
 
 
 
 
== Upgrade UMLGraph with Java's new doclet API ==
 
  
 
==== Brief Explanation ====
 
==== Brief Explanation ====
Line 29: Line 22:
  
 
==== Mentors:  ====
 
==== Mentors:  ====
[https://github.com/dspinellis Diomidis Spinellis], [https://www.csd.auth.gr/en/staff/faculty?view=user&ro=1&id=14 Stamelos Ioannis]
+
[https://github.com/dspinellis Diomidis Spinellis]
  
 
+
== 3gm ==
== <br>  API Design Tool ==
 
 
 
=== Mentor Organisation: National Bank Of Greece ===
 
 
 
==== Brief Explanation: ====
 
In the new world of “API Design First Approach” there is a need for a tool that can be used from both business or developer people to design the APIs. There are tools/IDE in the market at the moment that claim to fit this need but none has all the features required for the job.
 
                                                 
 
 
 
==== Related GitHub repositories ====
 
There is no project URL at the moment.
 
 
 
==== Expected Results ====
 
 
 
** The API Design tool should fulfill the following requirements:
 
** A person with no developer skills to be able to design/create an API visually.
 
** A developer to be able to design the API manually by writing/editing the swagger file.
 
** To be able to sync bidirectional changes to the API swagger file between the tool and a GitHub repository.
 
** To be able to download the API in a swagger yaml or json file (resolved or unresolved format).
 
** To be able to generate the API server stub in c#.
 
** To be able to preview the documentation of the API.
 
** To be able to download the documentation of the API.
 
** To be able to mock the API functionality.
 
** To be able to organize the APIs in projects and Teams.
 
** To be able to invite other people to collaborate with the API design.
 
** To be able to assign specific rights/roles to the people designing/viewing the the API.
 
** To be able to make public or private an API.
 
** To be able to create OAS2 and OAS3 APIs or convert between them.
 
** To be able to view at a glance what were the last changes and who made them.
 
 
 
==== Knowledge Prerequisites ====
 
AngularJS or ReactJS (latest stable version)
 
C#
 
 
 
==== Mentors:  ====
 
[mailto:bogdos.nikos@nbg.gr Bogdos Nikos], 
 
[mailto:gkozntari.stamatia@nbg.gr Gkozntari Stamatia],
 
[mailto:dkoliar@nbg.gr Koliarmou Despina],
 
[mailto:agapitou.flora@nbg.gr Agapitou Flora].
 
 
 
== Greek Government Gazette text mining, cross-linking, and codification - 3gm ==
 
  
 
==== Brief Explanation ====
 
==== Brief Explanation ====
Government Gazette text mining, cross-linking, and codification Project (or '''3gm''' for short) uses Natural Language Processing Methods and Practices on Greek Legislation.
+
Government Gazette text mining, cross-linking, and codification Project (or 3gm for short) uses Natural Language Processing Methods and Practices on Greek Legislation. It is primarily aimed at providing with the most recent versions of each law, i.e. an automated codex via NLP methods and practices.
 
 
The project is primarily aimed at providing with the most recent versions of each law, i.e. an '''automated codex (Code of Law) '''[https://en.wikipedia.org/wiki/Code_of_law] via NLP methods and practices.
 
 
 
With 3gm, the Greek Government Gazzete Issues (FEKs) are automatically fetched, denoised and parsed in order to extract the amendments made to laws by newer ones [https://github.com/eellak/gsoc2018-3gm/wiki/Algorithms-for-analyzing-Government-Gazette-Documents]. A versioning history of each law is kept on the database and is continuously served to the citizen via a web application. Therefore anyone has access to all different versions of each law at any time. The codification procedure is done by hand and this project automates it. The Greek Government Gazzete Documents are also kept on Internet Archive for easier retrieval and as a part of the public domain [https://archive.org/details/greekgovernmentgazette&tab=collection]. The project was initiated in Google Summer of Code 2018 [https://summerofcode.withgoogle.com/archive/2018/projects/5104033505214464/] and a first phase was successfully carried out as a result of it. The most recent versions of laws can be found at https://3gm.ellak.gr.
 
 
 
The scope of this GSoC project '''for 2019''' aims to expand the capabilities of the existing project by implementing NLP extensions (NER, Dep Parser etc.) in order to asses automated codification processes.   
 
  
Possible extensions of 3gm for this year's GSoC can be found at the project's '''issue page''' here: https://github.com/eellak/gsoc2018-3gm/issues.   
+
The scope of this GSoC project aims to expand the capabilities of the existing project by implementing NLP extensions (NER, Dep Parser etc.) described here: https://github.com/eellak/gsoc2018-3gm/issues in order to asses codification procedures. 
  
 
==== Expected Results ====
 
==== Expected Results ====
The candidate shall implement features which are part of the '''issue page '''or '''propose '''new ways and approaches to '''automated codification'''. The amount of work must be sufficient for the entire program. The issues have estimated durations and it is strongly advised to combine them in your proposal to a meaningful amalgamation. 
+
The aim of this GSoC project is to extend 3gm's current capabilities by incorporating more features like the development of a customized language model for dependency parsing, NER Extraction,  etc. in order to furtherly asses codification procedures
 
 
Immprovemnts 
 
 
 
1. Possibility of projection of the incorporation of a draft law into existing legislation. For example, incorporation of a suggestion from the consultation at opengov.gr and visualisation of possible changes it brings to existing legislation. 
 
 
 
2. Ability of interactive corrections of encoded text resulting from the auto-coding algorithm.
 
 
 
<nowiki> </nowiki>imple users will be able to flag verbal description while advanced users will be able to interactively process / delete / modify / insert the correct references between 2 legends.
 
 
 
3. Ability to see the full history of a codified version of a law.  (e.g. a page with the ability to track the changes that all the amending laws have brought to the text.)
 
 
 
4. Use of ELI (https://publications.europa.eu/en/web/eu-vocabularies/eli) as a metadata for the laws at 3gm.ellak.gr
 
 
 
5. Use one of the above Core Vocabularies to represent the structure / competencies / staffing of public administrations.
 
 
 
6. Possibility of interactive corrections of the structure and responsibilities derived from the NER & Metadata Extraction of the Greek Government Gazette
 
  
 
==== Related Repositories ====
 
==== Related Repositories ====
Source Code: https://github.com/eellak/gsoc2018-3gm
+
https://github.com/eellak/gsoc2018-3gm/tree/master/3gm and http://3gm.ellak.gr/
 
 
<nowiki> </nowiki>Web application: http://3gm.ellak.gr/
 
  
 
==== Knowledge Prerequisites ====
 
==== Knowledge Prerequisites ====
An ideal candidate would have the following skills:
+
Experience in Machine Learning, Knowledge of Python, Basic DevOps and Web Development Skills
* Advanced knowledge of '''Python'''
 
* Experience with at least one machine learning framework (e.g. PyTorch, Keras, Tensorflow)
 
* Basic DevOps skills (setting up a server with a database and deploying the web application)
 
* Greek as '''native''' language
 
* Solid understanding of machine learning algorithms and neural networks (DNNs, RNNs) as well as fundamentals of NLP (POS tagging, DEP parsing, NER, rule-based approaches)
 
* Basic knowledge in compilers would be appreciated
 
* Knowledge of MongoDB
 
* Familiarity with version control systems (git) and GitHub workflows (e.g. pull-requests, project boards)
 
 
 
==== Reading List ====
 
For further information on study material, please study the project wiki [https://github.com/eellak/gsoc2018-3gm/wiki] as well as the reading list [https://github.com/eellak/gsoc2018-3gm/wiki/Reading-List].
 
  
 
==== Mentors:  ====
 
==== Mentors:  ====
 
[https://github.com/dspinellis Diomidis Spinellis] [https://github.com/papachristoumarios Marios Papachristou]
 
[https://github.com/dspinellis Diomidis Spinellis] [https://github.com/papachristoumarios Marios Papachristou]
 
== Digital signing of grades - UniverSIS (open-sourse student info system) ==
 
 
==== <span lang="en-US">Brief Explanation</span> ====
 
[https://www.universis.gr/ UniverSIS] is a student information system under development by and for the HEI community in Greece. It is built on open schemas and well-defined APIs (check https://www.universis.io/api-docs/ ) with node.js on the back-end and angular on the front-end. It currently has two front-end applications, one for Students and one for Teachers, while a third, regarding the Registrar is underway. We propose the integration of digital signing of grades for the Teachers front-end, which will allow the uploading of grades with cryptographic signing through hardware token devices. A previous implementation is in production at sis.auth.gr and supports only Chrome browsers through a custom plugin to allow the signing of a checksum through a usb cryptotoken device.
 
==== <span lang="en-US">Related GitHub repositories</span> ====
 
https://gitlab.com/universis/universis-teachers
 
 
==== <span lang="en-US">Expected Results</span> ====
 
 
The work should produce a solution for protecting the long-term storage of course grades and allow for a posteriori verification of grades derived from the specific instructor. Digital signing of grades can be made available to all HEI in Greece, as all faculty obtain a national academicID (provided by GRNET) with a cryptotoken chip. Ideally, the [https://www.universis.io UniverSIS open-source solution] can be widely deployed and upgrade the security of grade/degree administration in Greek HEI.
 
 
==== <span lang="en-US">Knowledge Prerequisites</span> ====
 
Basic working knowledge of [https://www.openssl.org/ openSSL] [[wikipedia:Digital_signature|digital signing]] methods. Chrome/Firefox browser plugin creation, with [https://developer.chrome.com/extensions/nativeMessaging native messaging] experience desirable.
 
 
==== Mentors:====
 
[https://www.linkedin.com/in/differentreality/ Stella Rouzi] & [https://www.linkedin.com/in/dimitris-daskopoulos-98028815a/ Dimitris Daskopoulos]
 
 
== Class and Room Scheduling - UniverSIS (open-source student info system) ==
 
 
==== <span lang="en-US">Brief Explanation</span> ====
 
[https://www.universis.gr/ UniverSIS] is an effort for/by HEI in Greece to develop their own Student Information System. While front-end applications are being developed, the focus is on basic functionality only. We propose the extension of the schema of the [https://www.universis.io/ UniverSIS platform] to include the new models (classrooms, reservations) and the development of the relevant interface in the front end applications (Registrar, Teachers, Students). Basic functionality for making classroom reservations and course class scheduling by the Registrar. The teachers delivering the courses and the students enrolled should be able to view calendars of their scheduled classes. Advanced functionality such as cancellation of class and rescheduling could be implemented as an extra.
 
 
A previous implementation of such a system in full production for the Aristotle University of Thessaloniki can be viewed here:
 
 
https://class.auth.gr
 
 
http://it.auth.gr/el/eUniversity/class
 
 
http://it.auth.gr/el/classAdmin
 
 
The [https://github.com/auth-it-center/class.auth.gr-front-end code for this fully functional but older application] is based on AngularJS and deeply integrated with custom backend services available at our University. We intend to have a new implementation in Angular 7 integrated into the [https://www.universis.io/ UniverSIS Student Information System framework] and made available as an open-source solution that will provide a realistic alternative to the current aging solution in Greek universities.
 
 
==== <span lang="en-US">Related GitHub repositories</span> ====
 
https://gitlab.com/universis/
 
 
==== <span lang="en-US">Expected Results</span> ====
 
 
To produce a solution for a university calendar system that allows easy adoption for any Higher Education institution (in Greece and abroad), integrating with an existing student information system (course and faculty assignments) for scheduling of classes and venues.
 
 
==== <span lang="en-US">Knowledge Prerequisites</span> ====
 
Javascript and Angular experience is necessary, as the main front-end application technology for UniverSIS.
 
 
==== Mentors:====
 
[https://www.linkedin.com/in/differentreality/ Stella Rouzi], & [https://www.linkedin.com/in/dimitris-daskopoulos-98028815a/ Dimitris Daskopoulos] Polyxeni Malasioti, Ioannis Feneris
 
  
 
== Development of a DIY robot kit for educators ==
 
== Development of a DIY robot kit for educators ==
Line 174: Line 47:
 
==== Brief Explanation ====
 
==== Brief Explanation ====
  
The aim of the project will be to develop all the designs, guidelines and sample code for a starter DIY robot kit that can be 3d-printed, assembled and operated using basic electronics and sensors. This is expected to create a low-cost alternative to commercial robot kits (e.g. Lego Mindstorms) that does not require expert staff in robotics, electronics or IoT programming (e.g. using Arduino/Raspberry kits). The ability to 3D-print everything and combine it with low-cost basic electronics and sensors will allow regional open technologies initiatives to provide schools with starter kits and a full 'Robotic 101' introductory course.
+
The aim of the project will be to develop all the designs, guidelines and sample code for a starter DIY robot kit that can be 3d-printed, assembled and operated using basic electronics and sensors. This is expected to create a low-cost alternative to commercial robot kits (e.g. Lego Mindstorms) that does not require expert staff in robotics, electronics or IoT programming (e.g. using Arduino/Raspberry kits). The ability to 3D-print everything and combine it with low-cost basic electronics and sensors, will allow regional open technologies initiatives to provide schools with starter kits and a full 'Robotic 101' introductory course.
  
The kit that will be developed and opened must comprise 3D-designs for all the necessary parts of a modular robot that can be printed and assembled following the assemble guidelines. The target audience of the project can be educators (e.g. high school ICT teachers), with minimum expertise in robotics, electronics, and programming. So the print and assembly guidelines must be detailed and simple. In addition, the project must have a modular structure that allows educators to guide their students to the step-by-step development of the robot and to the implementation of simple navigation or sensing scenarios, that require basic programming skills.
+
The kit that will be developed and opened must comprise 3D-designs for all the necessary parts of a modular robot that can be printed and assembled following the assemble guidelines. The target audience of the project can be educators (e.g. high school ICT teachers), with minimum expertise in robotics, electronics, and programming. So the print and assembly guidelines must be detailed and simple. In addition, the project must have a modular structure that allows educators to guide their students to the step-by-step development of the robot and to the implementation of simple navigation or sensing scenaria, that require basic programming skills.
  
Deliverables of the project, apart from the robot parts' designs, include a detailed list of the necessary electronics and sensors and the specifications for a Raspberry pi or similar single board computer (SBG).
+
Deliverables of the project apart from the robot parts designs, include a detailed list of the necessary electronics and sensors and the specifications for a Raspberry pi or similar single board computer (SBG).
  
Detailed assembly instructions, images, and videos from the assembly process are desirable. 
+
Detailed assembly instructions, images and videos from the assembly process are desirable. 
  
The open source code that will be installed and run on the SBG and will allow controlling the robot through a simple programming interface, along with installation guidelines must be developed. 
+
Open source code that will be installed and run on the SBG and will allow controlling the robot through a simple programming interface, along with installation guidelines must be developed. 
  
 
The robot will be operated either manually using a browser that wirelessly connects with the robot, or automatically by uploading robot control scripts through the same environment. 
 
The robot will be operated either manually using a browser that wirelessly connects with the robot, or automatically by uploading robot control scripts through the same environment. 
Line 189: Line 62:
  
 
==== Expected Results ====
 
==== Expected Results ====
In the three months of the project it is expected to have the basic robot designs, the libraries for controling basic sensors (ultrasonic sensor, IR sensor, micro switches, optical odometer, servo/dc motor), the core operating software for controlling the robot and some simple robot programming assignments.
+
In the three months of the project it is expected to have the basic robot designs, the libraries for controling basic sensors (ultrasonic sensor, ir sensor, micro switches ,optical odometer, servo/dc motor), the core operating software for controlling the robot and some simple robot programming assignments.
 
 
The three months plan of the project must define:
 
a) The selection of electronics parts, SBC, and motors.
 
b) The 3D designs of the printed parts of the robot.
 
c) The libraries and software for controlling the robot.
 
d) The development of assembly guidelines and the creation of demo scenarios for the class.
 
 
 
 
 
  
 
==== Related Repositories ====
 
==== Related Repositories ====
Line 206: Line 71:
  
 
==== Mentors:  ====
 
==== Mentors:  ====
[https://www.dit.hua.gr/~varlamis/ Iraklis Varlamis], [https://github.com/tgkarounos Theodoros Karounos]
+
Iraklis Varlamis, Theodoros Karounos
  
 
== Addition of Greek glyphs in Open Source Fonts ==
 
== Addition of Greek glyphs in Open Source Fonts ==
Line 213: Line 78:
 
Many of the Open Source fonts (e.g., available at https://fonts.google.com), do not include glyphs for Greek letters and are therefore useless for using in a Greek environment.
 
Many of the Open Source fonts (e.g., available at https://fonts.google.com), do not include glyphs for Greek letters and are therefore useless for using in a Greek environment.
  
The aim of this project is to improve this situation and add the missing glyphs in the correct Unicode codepoints. The exact set of fonts to be completed will be determined in discussions between the student and the mentor(s).
+
The aim of this project is to imporve this situation and add the missing glyphs in the correct Unicode codepoints. The exact set of fonts to be completed will be determined in discussions between the student and the mentor(s).
  
 
'''This is not a typical programming project. '''If you have never designed fonts before, it is probably not for you.
 
'''This is not a typical programming project. '''If you have never designed fonts before, it is probably not for you.
Line 231: Line 96:
 
The lifecycle of the final project Thesis takes a large amount of administrative work from the initiation phase of project assignment till the last stage of publishing the Thesis to the University's library catalog. The main entities in this lifecycle are students, teachers, externals (e.g. companies or academics that cooperates with the university) and of course the Thesis subject.
 
The lifecycle of the final project Thesis takes a large amount of administrative work from the initiation phase of project assignment till the last stage of publishing the Thesis to the University's library catalog. The main entities in this lifecycle are students, teachers, externals (e.g. companies or academics that cooperates with the university) and of course the Thesis subject.
  
The cycle begins with professors announcing subjects, which can be their own subjects or subjects that have been suggested by externals or even the students who have contacted professors beforehand
+
The cycle begins with professors announcing subjects, which can be their own subjects or subjects that have been suggested by externals or even the students who have contacted professors beforhand
  
 
It continuous with students applying for subjects, from the list of available subjects and professors doing the final assignment.
 
It continuous with students applying for subjects, from the list of available subjects and professors doing the final assignment.
Line 259: Line 124:
  
 
==== Mentors:  ====
 
==== Mentors:  ====
[https://www.dit.hua.gr/~varlamis/ Iraklis Varlamis], [http://users.ntua.gr/karounos/karounos.html Theodoros Karounos]
+
Iraklis Varlamis, Theodoros Karounos
  
== Extraction of Public Administration Organizations structure and assignment of Responsibilities from the Greek Government Gazette ==
+
== makeblock support in Greek ==
  
 
=== Brief Explanation ===
 
=== Brief Explanation ===
The project will expand the project "NER & Metadata Extraction from the Greek Government Gazette"(https://github.com/eellak/gsoc2018-GG-extraction) that has been developed in the last GSoC 2018 and resulted in a software that parses pdf files of the GGZ and automatically classifies its paragraphs to those that contain information about the Organization structure, those that contain Responsibility assignments and those that contain information about the required staff positions.
+
Mblock, https://ide.makeblock.com/, is one of the best tools for Programming Software Designed for STEAM Education, supporting the Arduino (among other hardware). We want to support the Greek Language on mblock version 5 for all platforms it is available, as this will enable Greek educators and students  to use it on their native language.
The project is expected to fix any issues that the existing problem has with pdf file parsing, the classification of paragraphs and human-provided feedback but most important to provide new functionalities, that will extend the existing automatic annotation with entity extraction and codification of the extracted knowledge in a triple like format (e.g. RDF).
 
  
 
==== Expected Results ====
 
==== Expected Results ====
In the three months of the project it is expected to have a systems that takes a pdf as input or a csv annoted per paragraph and produces a file that summarizes the semantics of the Organization and its responsibilities (Departments, positions and responsibilities)
+
The addition of the Greek Language on mblock version 5
  
 
==== Related Repositories ====
 
==== Related Repositories ====
 +
http://www.mblock.cc/
  
https://github.com/eellak/gsoc2018-GG-extraction
+
==== Knowledge Prerequisites ====
 +
programming in general
  
==== Knowledge Prerequisites ====
 
Python, RDF, NLP
 
 
==== Mentors:  ====
 
==== Mentors:  ====
[https://www.dit.hua.gr/~varlamis/ Iraklis Varlamis][https://users.ionio.gr/~sarantos/en.html Sarantos Kapidakis],
+
Sarantos Kapidakis
 
 
  
 
== Round-trip integration between GitHub/GitLab issues and git-issue ==
 
== Round-trip integration between GitHub/GitLab issues and git-issue ==
Line 305: Line 168:
  
 
==== Mentors:  ====
 
==== Mentors:  ====
[https://github.com/dspinellis Diomidis Spinellis], [https://addons.mozilla.org/el/firefox/user/33342/ Kostas Papadimas]
+
[https://github.com/dspinellis Diomidis Spinellis]
  
 +
== <br> Epoptes ==
  
 +
==== Brief Explanation: ====
 +
Epoptes (Επόπτης  - a Greek word for overseer) is an open source computer lab management and monitoring tool. It allows for screen broadcasting
 +
and monitoring, remote command execution, message sending, imposing restrictions like screen locking or sound muting the clients and much more! It can be installed in Ubuntu, Debian and openSUSE based labs that may contain any combination of the following: LTSP servers, thin and fat clients, non LTSP servers, standalone workstations, NX or XDMCP clients etc.                                                   
 +
 +
==== Related GitHub repositories ====
 +
https://www.github.com/Epoptes/epoptes
 +
 +
==== Expected Results ====
 +
* Use a VNC library instead of relying on external programs like x11vnc and xvnc4viewer.
 +
* Investigate screen sharing on Wayland.
 +
* Reimplement the Epoptes network benchmark tool with python libraries, e.g. twisted.
 +
VNC library Epoptes supports broadcasting the teacher screen and assisting the students by taking control of their screens remotely. To do that, it's using external programs like x11vnc, xvnc4viewer, tightvnc, tigervnc, ssvnc. Most of these programs have maintenance issues and some of them have already been removed from distributions.
 +
On the other hand, there are some VNC libraries available in most distributions. They should be evaluated, and if some of them plans to eventually support Wayland, Epoptes should be rewritten to use that library instead of the external VNC programs.
 +
 +
Screen sharing on Wayland
 +
Some developers are trying to implement screen sharing on Wayland using modern technologies like WebRC/PipeWire. The current status should be evaluated, and if it appears to be mature, code could be added in Epoptes to support that.
 +
Network benchmark tool
 +
 +
The current implementation of Epoptes network benchmark tool is externally calling iperf v2, which is rather unstable. Its backend should be rewritten using native python libraries, for example twisted.
 +
Application/evaluation tasks
 +
Students that apply for a GSoC project should implement the following tasks for their initial evaluation: Implement a network benchmark tool in python, that measures the upload/download speed between only two computers in the local network.
 +
<nowiki> </nowiki> Try out and document the software and steps involved for sharing the screen (or a window, whichever is easier) between two users under Wayland, in any distribution.
 +
 +
==== Knowledge Prerequisites ====
 +
Python
 +
 +
GTK
 +
 +
==== Mentors:  ====
 +
Giannis Siahos
  
 
== Symplegma ==
 
== Symplegma ==
Line 332: Line 226:
  
 
==== Mentors: ====
 
==== Mentors: ====
[http://www.civil.auth.gr/en/personel-en/dep-en/167-gdm.html George Manolis], [http://www.iacm.forth.gr/index_people.php?l=en&group=0&page=people&pageid=86 Christos Panagiotopoulos]
+
George Manolis (gdm@civil.auth.gr), Christos Panagiotopoulos (pchr76@gmail.com)
  
 
==clio — Software Components and IP Management System ==
 
==clio — Software Components and IP Management System ==
Line 348: Line 242:
 
improvements to clio
 
improvements to clio
  
==== Related  repositories ====
+
=== Related  repositories ===
 
 
 
code at https://github.com/eellak/clio
 
code at https://github.com/eellak/clio
 
demo at https://clio.ellak.gr/
 
demo at https://clio.ellak.gr/
  
 
==== Knowledge Prerequisites ====
 
==== Knowledge Prerequisites ====
 
 
Python, web front-end
 
Python, web front-end
  
==== Mentors: ====
+
==== Mentors: ==== 
 
 
 
[https://github.com/zvr Alexios Zavras]
 
[https://github.com/zvr Alexios Zavras]
  
Line 364: Line 255:
  
 
==== Brief Explanation ====
 
==== Brief Explanation ====
 
 
LTSP (Linux Terminal Service Project) allows diskless workstations to be netbooted from a single server image, with centralized authentication and home directories. But the project shows its age; the initial thin-client focused design is no longer suitable for the netbooted fat client/wayland era, and it contains a lot of stale source code. This GSoC project is about designing and implementing a modern replacement of LTSP.
 
LTSP (Linux Terminal Service Project) allows diskless workstations to be netbooted from a single server image, with centralized authentication and home directories. But the project shows its age; the initial thin-client focused design is no longer suitable for the netbooted fat client/wayland era, and it contains a lot of stale source code. This GSoC project is about designing and implementing a modern replacement of LTSP.
  
Line 371: Line 261:
 
A modern replacement of LTSP should be implemented, as outlined in http://wiki.ltsp.org/wiki/Dev:GSoC. It should be ready for inclusion in Debian/Ubuntu, for LTSP users to be able to slowly migrate to it.
 
A modern replacement of LTSP should be implemented, as outlined in http://wiki.ltsp.org/wiki/Dev:GSoC. It should be ready for inclusion in Debian/Ubuntu, for LTSP users to be able to slowly migrate to it.
  
==== Related  repositories ====
+
=== Related  repositories ===
 
http://www.ltsp.org/
 
http://www.ltsp.org/
 
http://wiki.ltsp.org/wiki/Dev:GSoC
 
http://wiki.ltsp.org/wiki/Dev:GSoC
  
==== Knowledge Prerequisites ====
+
=== <br> Knowledge Prerequisites ===
 
 
 
Netbooting internals, shell, python, git, debian packaging
 
Netbooting internals, shell, python, git, debian packaging
  
 
+
==== Mentors: Yannis Siahos , Foteini Tsiami - Unofficial mentor, Debian & LTSP developer: Vagrant Cascadian ====
==== Mentors ====
 
 
 
[https://www.linkedin.com/in/yannissiahos/ Yannis Siahos], Foteini Tsiami, [https://www.socallinuxexpo.org/scale/15x/speakers/vagrant-cascadian Vagrant Cascadian]
 
  
 
== Port Qt Quick Controls Calendar widget to Qt Quick Controls 2 module ==
 
== Port Qt Quick Controls Calendar widget to Qt Quick Controls 2 module ==
Line 399: Line 285:
  
 
=== Mentors:   ===
 
=== Mentors:   ===
[https://www.linkedin.com/in/alexandra-b-a361087b/ Alexandra Betouni], Amilcar Navarro
+
Alexandra Betouni alexandra.betouni@extenly.com
  
 
== Development of a Tool for Extracting Quantitative Text Profiles ==
 
== Development of a Tool for Extracting Quantitative Text Profiles ==
Line 450: Line 336:
 
==== Mentors:   ====
 
==== Mentors:   ====
 
[https://github.com/gmikros George Mikros] [https://github.com/fitsilisf Fotis Fitsilis] [https://github.com/sleventis Sotiris Leventis]  [https://github.com/mfitsilis Michael Fitsilis ]
 
[https://github.com/gmikros George Mikros] [https://github.com/fitsilisf Fotis Fitsilis] [https://github.com/sleventis Sotiris Leventis]  [https://github.com/mfitsilis Michael Fitsilis ]
 
== Anonymisation through data encryption of sensitive data in odt and text files in Greek Language ==
 
 
=== Backround Information ===
 
Legal decisions that must be publicly available, contain a lot of sensitive information that has to be anonymized. GDPR defines pseudonymization in Article 3, as “the processing of personal data in such a way that the data can no longer be attributed to a specific data subject without the use of additional information.” To anonymise a data set, the “additional information” must be “kept separately and subject to technical and organisational measures to ensure non-attribution to an identified or identifiable person.”
 
 
=== Expected results ===
 
A  [https://extensions.libreoffice.org/extensions LibreOffice Extension] and a Linux application with a web GUI that will  anonymize information in legal documents(odt and txt). Must have the ability to mass edit files, and to recognize through NLP and anonymize entities (such as Names, Addresses- ID numbers- VAT- social security numbers  or any other potentially sensitive information. The entities that will be anonymized through strong data encryption so that only people with access to a secret key or password can read the documents.
 
 
=== Knowledge Prerequisites ===
 
Python, Spacy, Encryption algorithms
 
 
=== Related repositories ===
 
https://pypi.org/project/bcrypt/
 
 
https://github.com/eellak/anonimos-amka/
 
 
https://github.com/eellak/gsoc2018-spacy
 
 
=== Mentors ===
 
[https://www.dit.hua.gr/~varlamis/ Iraklis Varlamis], [https://github.com/tgkarounos Theodoros Karounos]
 
  
 
== <span lang="en-US">OpenProject Work-Package #1 to support modeling of the PM<sup>2 </sup>methodology for project management</span> ==
 
== <span lang="en-US">OpenProject Work-Package #1 to support modeling of the PM<sup>2 </sup>methodology for project management</span> ==
Line 514: Line 379:
 
</span>
 
</span>
  
https://ec.europa.eu/isa2/solutions/open-pm2_en/
+
==== <span lang="en-US">https://ec.europa.eu/isa2/solutions/open-pm2_en\ </span> ====
  
 
==== '''Knowledge Prerequisites''' ====
 
==== '''Knowledge Prerequisites''' ====
Line 526: Line 391:
 
 
 
==== Mentors ====
 
==== Mentors ====
[http://users.ntua.gr/karounos/karounos.html Theodoros Karounos], [http://www.3-lab.eu/core-team/george-blanas/ George Blanas], [https://www.linkedin.com/in/nicoskourounakis/ Nicos Kourounakis]
+
Theodoros Karounos, Iraklis Varlamis, Nicos Kourounakis
  
 
== <span lang="en-US">OpenProject Work-Package #2 to support functionality of the PM<sup>2 </sup>methodology for project management</span> ==
 
== <span lang="en-US">OpenProject Work-Package #2 to support functionality of the PM<sup>2 </sup>methodology for project management</span> ==
Line 591: Line 456:
  
 
==== Mentors ====
 
==== Mentors ====
[http://users.ntua.gr/karounos/karounos.html Theodoros Karounos], [http://www.3-lab.eu/core-team/george-blanas/ George Blanas], [https://www.linkedin.com/in/nicoskourounakis/ Nicos Kourounakis]
+
Theodoros Karounos, Iraklis Varlamis, Nicos Kourounakis
  
 
==Real time Django monitoring and profiling ==
 
==Real time Django monitoring and profiling ==
Line 605: Line 470:
  
 
An overview of similar solutions (mainly open source but also commercial offerings).
 
An overview of similar solutions (mainly open source but also commercial offerings).
A web dashboard exposing information about malfunctions and providing real time monitoring for Django applications.
+
A web dashboard exposing information about mulfunctions and providing real time monitoring for Django applications.
  
==== Related  repositories ====
+
=== Related  repositories ===
 
https://github.com/django/django
 
https://github.com/django/django
 
https://github.com/jazzband/django-debug-toolbar
 
https://github.com/jazzband/django-debug-toolbar
Line 615: Line 480:
 
Django, Celery, Django-debug-toolbar, optionally ElasticSearch/Kibana, Postgresql
 
Django, Celery, Django-debug-toolbar, optionally ElasticSearch/Kibana, Postgresql
  
==== Mentors ====
+
==== Mentors[https://github.com/mgogoulos Markos Gogoulos], [https://github.com/mpetyx Michael Petychakis], [https://twitter.com/siaterliskonsta Kostas Siaterlis] ====
[https://github.com/mgogoulos Markos Gogoulos], [https://github.com/mpetyx Michael Petychakis], [https://twitter.com/siaterliskonsta Kostas Siaterlis]
 
  
 
== Moodle connection with multiple BigBlueButton servers ==
 
== Moodle connection with multiple BigBlueButton servers ==
Line 632: Line 496:
 
BigBlueButtonBN plugin configuration parameters set per virtual classroom and not globally
 
BigBlueButtonBN plugin configuration parameters set per virtual classroom and not globally
  
==== Related  repositories ====
+
=== Related  repositories ===
 
https://github.com/blindsidenetworks/moodle-mod_bigbluebuttonbn
 
https://github.com/blindsidenetworks/moodle-mod_bigbluebuttonbn
  
Line 643: Line 507:
  
 
==== Mentors:  ====
 
==== Mentors:  ====
[http://iep.edu.gr/en/natural-sciences-technology-and-mathematics?view=article&id=1339:cv-giannitsaros-panagiotis&catid=181:biographical-notes Panagiotis Giannitsaros],   
+
Panagiotis Giannitsaros  
  
 
== Creation of an online Greek mail dictation system, using Sphinx and personalized acoustic/language models training ==
 
== Creation of an online Greek mail dictation system, using Sphinx and personalized acoustic/language models training ==
Line 660: Line 524:
  
 
=== Mentors: ===
 
=== Mentors: ===
[https://issel.ee.auth.gr/staff/andreas-l-symeonidis/ Andreas Symeonidis], [http://users.auth.gr/etsardou/ Manos Tsardoulias]
+
Andreas Symeonidis, Associate Professor, School of Electrical and Computer Engineering
  
 
== Moodle ADaptable VIsualization for CommunitiEs ( Moodle - ADVICE) ==
 
== Moodle ADaptable VIsualization for CommunitiEs ( Moodle - ADVICE) ==
Line 675: Line 539:
  
 
=== Related  repositories ===
 
=== Related  repositories ===
 
https://github.com/moodle/moodle/tree/master/mod
 
 
https://moodle.org/plugins/
 
  
 
=== Knowledge Prerequisites ===
 
=== Knowledge Prerequisites ===
Line 684: Line 544:
  
 
=== Mentors: ===
 
=== Mentors: ===
[http://education.aspete.gr/index.php/en/personnel/acc/programmes/213-papanikolaou-kyparisia.html Kyparisia Papanikolaou], Maria Tzelepi
+
Kyparisia Papanikolaou, Maria Tzelepi
 
 
 
 
== Development of an open source Greek Spelling and Grammatical dictionary ==
 
 
 
==== Brief Explanation ====
 
Development of a spelling- grammatical tool that can work both as a LibreOffice extension and as a stand-alone web service by reusing the AfterTheDeadline API in order to be reused into a wide range of packages and platforms (Firefox, Chrome, Thunderbird, TinyMCE / Wordpress, jquery, etc.).
 
 
 
==== Expected results ====
 
* Extraction of Greek words from platforms with open licences (Wikipedia, Wikinews - wiki dictionary- Wikipedia revision history etc)
 
* Creation of a morphological dictionary of Modern Greek which will include all the extracted  verbs, adjectives into finite state transducers (for the implementation of morphological analyzer and morphological word generator through the tools of Apertium and HFST).
 
* Implementation of the tool:
 
in python3/c+/c++.
 
 
 
as LibreOffice extension
 
 
 
in  (REST/JSON)
 
 
 
==== Knowledge Prerequisites<br> ====
 
* C
 
* C++
 
* Python
 
* SQL
 
 
 
==== Mentors: ====
 
 
 
[https://github.com/pkst-ellak Kostas Papadimas] [https://www.spinellis.gr Diomidis Spinellis]
 
 
 
== CScout AJAX-based Interface ==
 
 
 
==== Brief Explanation ====
 
 
 
CScout is a source code analyzer and refactoring browser for collections of C programs. It can process workspaces of multiple projects (a project is defined as a collection of C source files that are linked together) mapping the complexity introduced by the C preprocessor back into the original C source code files. CScout takes advantage of modern hardware (fast processors and large memory capacities) to analyze C source code beyond the level of detail and accuracy provided by current compilers and linkers. The analysis CScout performs takes into account the identifier scopes introduced by the C preprocessor and the C language proper scopes and namespaces. CScout has already been applied on projects of tens of thousands of lines to millions of lines, like the Linux, OpenSolaris, and FreeBSD kernels, and the Apache web server.
 
 
 
The aim of this project is to redesign the current web interface, which is based on HTML forms generated by C++ code, into a responsive AJAX-based one. Under this scheme the C++ code will provide JSON data through a RESTful interface, which the JavaScript front-end will use.
 
 
 
==== Expected Results ====
 
 
 
A modern responsive web interface offering the current capabilities of CScout.
 
Ideally this would include in-line editing of identifiers.
 
 
 
==== Related GitHub repository ====
 
https://github.com/dspinellis/cscout
 
 
 
==== Knowledge Prerequisites ====
 
 
 
* C++
 
* JavaScript
 
* A modern development framework for interactive web content
 
 
 
==== Mentor:====
 
[https://www.spinellis.gr Diomidis Spinellis] [http://www.csd.auth.gr/en/staff/faculty?view=user&ro=1&id=14 Stamelos Ioannis]
 
 
 
 
 
== NextCloudPi ==
 
 
 
===== Brief Explanation =====
 
NextCloudPi is an open source project that aims to simplify the installation of Nextcloud server to amateurs but also advanced users who want to avoid maintenance.
 
 
 
At the moment it has these main features:
 
* Ready to use Images for RasbperryPi and other ARM Boards based on Debian-ish Distros (Raspbian - Armbian)
 
* Docker Images for ARM and x86 architectures
 
* 1 Bash script that installs everything on a clean Debian System (Allows installation on ARM boards that not yet have image, or systems that don't support/want to use docker)
 
* State of the art configuration of Apache, PHP-FPM, Mariadb, Redis and more
 
* Features like: Backup, Restore, SSL Certificates, DDNS Clients, NFS, Samba, UFW, Fail2ban, modsecurity, nc-report and many (many) more.
 
* Offers 2 choices to manage the system (They both use the same back-end scripts)
 
** TUI (`ncp-config` from terminal)
 
** WebPanel (`https://nextcloudpi.lan:4443` from a web browser)
 
It is written mostly in `BASH` and a bit with `php`,`html`,`css`,`js` language
 
 
 
===== Expected Results =====
 
* Develop: Nextcloud Native NCP App (webpanel)
 
** Make a nice UI/UX
 
** Create Backups-Restore/Import-Export/Snapshots UI
 
* Develop Onlyoffice easy installation (not ARM architecture yet)
 
* Develop: Collabora online easy installation (not ARM architecture yet)
 
* Develop: Vagrant installation
 
* Develop: Ansible role
 
* Develop: CI/CD to build releases on github
 
* Design - Develop: High availability option for big installations
 
* Mobile app integration (Manage - Info - Users)
 
 
 
====== Secondary tasks ======
 
* Develop: Easy way to selfhost email
 
* Write: Best documentation possible (https://docs.nextcloudpi.com)
 
** Write: Guides
 
** Write: Make a simple small video for amateurs
 
* Make contacts and calendar encrypted
 
 
 
===== Related GitHub repositories =====
 
https://github.com/nextcloud/nextcloudpi/
 
 
 
===== Knowledge Prerequisites =====
 
* BASH
 
* PHP
 
* HTML/CSS/JS
 
* JAVA
 
 
 
===== Mentors =====
 
[https://github.com/pant Sarantos Panteleimon], [https://github.com/nachoparker Ignacio Núñez], [https://wiki.gnome.org/EfstathiosIosifidis Efstathios Iosifidis]
 
 
 
== eIDAS SAML functionality to keycloak ==
 
 
 
===== Brief Explanation =====
 
[https://www.keycloak.org/ Keycloak] is an open source Identity and Access Management solution aimed at modern applications and services. It makes it easy to secure applications and services with little to no code.
 
 
 
===== Expected Results =====
 
 
 
We would like to add eIDAS eIDAS SAML functionality to  keycloak. Keycloak is one of the open source IAM currently available. A comparison of open-source SSO implementations is available [https://gist.github.com/bmaupin/6878fae9abcb63ef43f8ac9b9de8fafd here], a recent video comparison between keycloak and WS02 was present in recent [https://www.youtube.com/watch?v=hnjBiGsEDoU IDM2018] and an opinionated comparison in [https://stackoverflow.com/questions/46184787/gluu-vs-keycloack-vs-wso2-identity-management stackoverflow]. 
 
 
 
[https://ec.europa.eu/cefdigital/wiki/display/CEFDIGITAL/2016/12/16/eIDAS+Technical+Specifications+v.+1.1 eIDAS(electronic IDentification, Authentication and trust Services)] is an EU regulation on electronic identification and trust services for electronic transactions in the internal market.  A cross border connection within the member states of EU uses an [https://ec.europa.eu/cefdigital/wiki/display/CEFDIGITAL/How+does+it+work+-+eIDAS+solution eIDAS network] that consists of a series of eIDAS-nodes implemented at the member state level.
 
 
 
An eIDAS-node consists of an eIDAS connector and an eIDAS proxy service or eIDAS middleware service. An eIDAS node can request a cross border authentication through the eIDAS connector and provide a cross border authentication through the eIDAS service (an eIDAS service can operate either in an eIDAS proxy service or eIDAS middleware service). As a matter of fact eIDAS implements a specific [https://ec.europa.eu/cefdigital/wiki/display/CEFDIGITAL/eIDAS+Profile dialect]  (i.e. Profile) of SAML. Following is an example eIDAS network with proxy to proxy connection between two member states(MS).
 
 
 
 
 
What happens here is as follows:
 
-The user (citizen) of MS A requests access to a service provider in MS B.
 
-The service provider in MS B sends the request to its own connector.
 
-On receipt of the request, the connector asks the user for the country of origin (TLS protocol).
 
-When the user selects the country of origin, the SAML request is forwarded by the connector to the eIDAS-node proxy service of the user's member state.
 
- The eIDAS-node proxy service sends the SAML request to the identity provider for authentication, and a user authenticates using the electronic identity.Once authenticated, this identity is returned to the eIDAS-node proxy service.
 
-The eIDAS-node proxy service sends a SAML assertion to the requesting connector, which forwards the response to the service provider.
 
-Τhe service provider grants access to the user.
 
 
 
A similar functionality has been added to [https://docs.wso2.com/display/IS570/Electronic+Identification%2C+Authentication+and+Trust+Services+Regulation WSO2].We believe the Apache Keycloack presents a lower barrier to enter, technologically speaking due to its easier admin dashboard procedures. Furthermore keycloak brings enough community to actively support its open software base.
 
 
 
===== Related GitHub repositories =====
 
 
 
https://github.com/keycloak/keycloak
 
 
 
https://readthedocs.org/projects/python-keycloak/
 
 
 
https://github.com/topics/eidas-framework
 
 
 
===== Knowledge Prerequisites =====
 
 
 
* PYTHON
 
* JAVA
 
 
 
===== Mentors =====
 
[https://www.linkedin.com/in/antonis-stasis-59a03539/?originalSubdomain=gr Stasis Antonis], [https://github.com/kranidiotis Panagiotis Kranidiotis] [https://github.com/dkalog Dimitris Kalogeras],
 
 
 
== Refactor open source remote systems and network management solution ==
 
 
 
===== Brief Explanation =====
 
The project is about refactoring the current version of OpenRSM that was initially developed in 2011
 
It has the following main features:
 
* It addresses the needs of system and network admins
 
* Its philosophy is to be simple, fast and configurable in order to foster combinational solutions.
 
* The core system is capable to manage any workstation or server and monitor the operation of active network elements.
 
* Extensions of the system cover the management of wireless sensor networks and embedded systems.
 
* The system has been tested in pilot installations and stressed for scalability in the lab.
 
 
 
===== Expected Results =====
 
* Port OpenRSM to Qt 5.12
 
* Port from NINO to OpenNMS
 
* Port to Winventory to OCS (OCSInventory-Server)
 
* Port to latest version of OPSI
 
* Port from UltraVNC to latest version of TigerVNC
 
* Port OpenRSM from sourceforge to GITHUB
 
* Upgrade all subsystems of OpenRSM to the latest varsions
 
* Develop a Docker Installation for OpenRSM
 
* Develop a Vagrant Installation for OpenRSM
 
* Develop an Ansible role for OpenRSM
 
 
 
====== Secondary tasks ======
 
* Update documentation
 
* Update Installation Guides
 
* Make video Guides for admins
 
 
 
===== Related repositories =====
 
http://openrsm.sourceforge.net/
 
 
 
https://github.com/OpenNMS
 
 
 
https://github.com/OCSInventory-NG/OCSInventory-Server
 
 
 
https://sourceforge.net/projects/opsi/
 
 
 
https://tigervnc.org/
 
 
 
https://www.qt.io/
 
 
 
https://github.com/hashicorp/vagrant
 
 
 
https://github.com/ansible/ansible
 
 
 
[https://drive.google.com/drive/folders/1e0fo1MV5g1E-EkQtvnU5v5b-sYZhJXHb Documentation in Greek]
 
 
 
===== Knowledge Prerequisites =====
 
*QT ([[wikipedia:Qt_(software)|https://en.wikipedia.org/wiki/Qt_%28software%29]])
 
*Object Pascal
 
*SQL(MySQL innodb - myisam)
 
*PHP
 
*JavaScript
 
*Perl
 
*Linux shell/bash
 
*NSIS (Nullsoft Scriptable Install System)
 
*TCP/IP protocol
 
*SNMP protocol
 
*NAT/PAT
 
 
 
===== Mentors =====
 
[https://.... ......], [https://.... ......], [https://github.com/pant Sarantos Panteleimon]
 
 
 
== Geometric sampling for volume computation and convex optimization ==
 
 
 
==== Brief Explanation ====
 
 
 
Convex optimization and volume computation are fundamental problems in mathematics and computer science with many applications that span the whole spectrum of sciences and engineering. It appears, for example, in problems in statistics, biology, and economics, to name a few concrete application areas.
 
 
 
==== Expected Results ====
 
 
 
VolEsti (https://github.com/GeomScale/volume_approximation) is a C++ package with an R interface that performs efficient high dimensional sampling and volume computation. It supports a variety of convex polytope representations and scales to high (i.e., a few hundred) dimensions.
 
To our knowledge it is the only software that combines the above features.
 
 
 
The main purpose of this year’s projects is to extent VolEsti’s functionality and as a consequence to provide state-of-the-art algorithms for sampling and volume computations to the R-project. We propose the following projects:
 
 
 
===== Project 1. Sampling scalability =====
 
This project contains the empirical study of random walks for convex polytopes (mainly given by a set of linear inequalities). Currently variations of hit-and-run random walks are used but there are methods in bibliography with better mixing time; most notably the hamiltonian walk https://arxiv.org/pdf/1710.06261.pdf. We expect that an efficient implementation of such a method to have a dramatic effect in the scaling of the underlying algorithms (mainly sampling and volume computations, but there are also connections to convex optimization). We set the ultimate goal in one sentence: “scale from a few hundred dimensions to a few thousand”. 
 
 
 
We can divide the coding project in the following steps:
 
 
 
* Understand the code structure and design of VolEsti.
 
* Create prototypes for new sampling algorithms (the main focus will be in Hamiltonian walk but we may investigate others too).
 
* Implement the best representatives from the previous step in VolEsti and create R interfaces.
 
* Write tests and documentation.
 
 
 
===== Project 2. Sampling and volume of spectahedra =====
 
 
 
This is a non-linear extension for VolEsti. Spectahedra are feasible regions of semidefinite programs and are known to be convex. They play an important role in optimization since they are the “next more understandable” convex objects after polytopes. Offering algorithms for sampling and volume computation will shed more light towards their study.
 
 
 
The coding project consists in the following steps:
 
 
 
* Understand the code structure and design of VolEsti. Understand the basics for spectahedra from bibliography.
 
* Implement a new convex body type and boundary oracle for spectahedra.
 
* Work on extensions of the problem such as replacing spectahedra by a spectahedral shadow.
 
*  Write tests and documentation.
 
 
 
===== Project 3. Convex optimization with randomized algorithms =====
 
 
 
A very related topic to volume approximation via sampling is convex optimization. This project proposes the design and implementation of optimization algorithms (available in relevant bibliography) in VolEsti that utilize sampling (already available in the library) as a main subroutine.
 
 
 
* Understand the code structure and design of VolEsti.
 
* Implement optimization algorithms. A good place to start is  http://www.optimization-online.org/DB_FILE/2008/12/2161.pdf
 
* Test implementations with various random walks available in VolEsti
 
* Write tests and documentation
 
 
 
==== Expected impact ====
 
 
 
A lot of users such as practitioners or researchers from a variety of scientific fields ranging from biogeography to economics need a high level programming or scripting environment to test volume computation or sampling algorithms. With the successful completion of the current proposed projects the library and thus the R-project will benefit from (a) faster and more scalable sampling methods, (b) support for non-linear objects, (c) support for optimization algorithms. The above benefits will enhance the experience of current users but more importantly it will attract new users  since we expect that the library will be used to solve problems that cannot be solved today with available software tools.
 
 
 
There are practical and theoretical consequences.
 
From a theoretical point of view we will be able to study the volume of the feasible region of SDP and experiment with theta bodies, thus we will provide a robust for experimentation in convex optimization.
 
From a practical point of view we expect that the library will find use in the computation of equilibria in thermodynamics, in biology for understanding the evolution of coding sequences, in material sciences; these application require robust volume computations of convex bodies. 
 
 
 
==== Related Repositories ====
 
https://github.com/GeomScale/volume_approximation
 
 
 
==== Knowledge Prerequisites ====
 
 
 
Students should have a solid background in C++, algorithms and linear algebra. Knowledge of computational geometry, optimization or statistical computing in R will be a plus.
 
 
 
==== Mentors:  ====
 
 
 
[https://vissarion.github.io Vissarion Fisikopoulos], [https://www-polsys.lip6.fr/~elias Elias Tsigaridas], [http://zaf.zafeirakopoulos.info/index.html Zafeirakis Zafeirakopoulos]
 
 
 
==== Tests ====
 
 
 
Students, please do one or more of the following tests before contacting the mentors above.
 
 
 
* Easy:
 
** compile and run VolEsti.
 
** Solve this issue https://github.com/GeomScale/volume_approximation/issues/8
 
** Use the R extension to visualize sampling in a polytope.
 
* Medium:
 
** implement the Dikin walk http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.153.7868&rep=rep1&type=pdf
 
** extent hit-and-run to sample from the boundary of the polytope.
 
* Hard:
 
** add support to VolEsti to compute volumes for lower dimensional polytopes, e.g., a segment in the 3-dimensional space (for projects 1,2)
 
** implement the optimization algorithm from http://www.optimization-online.org/DB_FILE/2008/12/2161.pdf (for project 3)
 
 
 
 
 
  
  
[[Κατηγορία:GSOC]] [[Κατηγορία:GSOC2019]]
+
[[Κατηγορία:GSOC2019]]

Please note that all contributions to Ελεύθερο Λογισμικό / Λογισμικό ανοιχτού κώδικα are considered to be released under the Creative Commons (see Ελεύθερο Λογισμικό / Λογισμικό ανοιχτού κώδικα:Πνευματικά Δικαιώματα for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)