This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
events:gsoc2013 [2013/03/12 12:29] sunweaver [PyHoca-PubAppDaemon - transparent X2Go Published Applications Integration into local Desktops] |
events:gsoc2013 [2013/03/15 00:24] sunweaver [Google Summer Of Code 2013] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Google Summer | + | ====== Google Summer |
===== Contact Information for Applying Students ===== | ===== Contact Information for Applying Students ===== | ||
Line 32: | Line 32: | ||
However, if you do not sense affinity to any of the project ideas listed below, feel free to propose your own code project idea. | However, if you do not sense affinity to any of the project ideas listed below, feel free to propose your own code project idea. | ||
- | ==== X2Go Client / X2Goplugin | + | ==== X2Go Client / X2Go Plugin |
* As [[http:// | * As [[http:// | ||
* As it is only possible to install applications on chromeOS (running on an original chromebook) via the [[https:// | * As it is only possible to install applications on chromeOS (running on an original chromebook) via the [[https:// | ||
Line 46: | Line 46: | ||
* The weakness of X2Go definitely is the NX Xserver used for display server session on the client | * The weakness of X2Go definitely is the NX Xserver used for display server session on the client | ||
* This coding project would be a start to gradually update the Xserver extensions shipped with NX | * This coding project would be a start to gradually update the Xserver extensions shipped with NX | ||
- | * During this project you will get a deep insight into Xserver code. You need good C and Cplusplus skills to start this code project. | + | * During this project you will get a deep insight into Xserver code. You need good C and Cplusplus skills to start this code project. |
==== X2Go Desktop Applet ==== | ==== X2Go Desktop Applet ==== | ||
Line 62: | Line 62: | ||
* Add a session profile storage (on a per-user basis) based on e.g. MongoDB | * Add a session profile storage (on a per-user basis) based on e.g. MongoDB | ||
* Make these session profiles configurable through a nice WebGUI | * Make these session profiles configurable through a nice WebGUI | ||
- | * The current public implementation of the X2Go Session Broker is written in Python. | + | * The current public implementation of the X2Go Session Broker is written in Python. The difficulty is medium. Interests in Web2.0 development strategies is of advantage. |
==== JSON based protocol for communication between X2Go Client and X2Go Session Broker ==== | ==== JSON based protocol for communication between X2Go Client and X2Go Session Broker ==== | ||
Line 68: | Line 68: | ||
* JSON is a very appropriate data format when two applications what to exchange data objects via text base communication streams | * JSON is a very appropriate data format when two applications what to exchange data objects via text base communication streams | ||
* Currently, X2Go Client and X2Go Session Broker currently communicate over a plain text base communication protocol. This protocol is not very tolerant about errors | * Currently, X2Go Client and X2Go Session Broker currently communicate over a plain text base communication protocol. This protocol is not very tolerant about errors | ||
- | * To make the client< | + | * To make the client< |
* However, transparent backward compatibility must be granted at the same time: new X2Go Clients must continue to be able to speak the older broker protocol, new X2Go Session Brokers must be able to understand old X2Go Clients | * However, transparent backward compatibility must be granted at the same time: new X2Go Clients must continue to be able to speak the older broker protocol, new X2Go Session Brokers must be able to understand old X2Go Clients | ||
+ | * Good knowledge of Qt4 and Cplusplus are required for this task | ||
- | ==== Interface between LightDM' | ||
- | |||
- | * The remote login feature in LightDM uses UCCS for session brokerage. The UCCS is a very public service. The main caveat is: UCCS offers to store user passwords and these passwords (at time of Ubuntu 12.10 and Ubuntu 13.04) get stored in plaintext at Canonical (or at least can be easily unhashed). A site admin surely would love to have such a web portal as UCCS at hand, so that the remote login feature can be used on the local network without Canonical as the brokerage provide in the loop. | ||
- | * This code project is to provide a drop-in replacement for the Ubuntu package '' | ||
- | * The users shall then be able to use LightDM' | ||
- | * Versatile skill are needed for this: C, Cplusplus, XML, JSON, Python. | ||
==== PyHoca-PubAppDaemon - transparent X2Go Published Applications Integration into local Desktops ==== | ==== PyHoca-PubAppDaemon - transparent X2Go Published Applications Integration into local Desktops ==== | ||
Line 94: | Line 89: | ||
* PyHoca-PubAppDaemon can be queried for server-side provided applications (a list of .desktop files plus base64 encoded icons) | * PyHoca-PubAppDaemon can be queried for server-side provided applications (a list of .desktop files plus base64 encoded icons) | ||
* The returned menu items are merged into the local application menu | * The returned menu items are merged into the local application menu | ||
- | * A click on one of those (local) .desktop files (executing a published application) | + | * A click on one of those (local) .desktop files (executing a published application) |
- | The task is rather complex and demands quite a bit of understanding of the FreeDesktop specifications. The whole project will be in Python. A draft for the login process is already available on X2Go Git (projects: '' | + | The task is rather complex and demands quite a bit of understanding of the FreeDesktop.org specifications. The whole project will be in Python. A draft for the login process is already available on [[http:// |