Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
developers:gsoc:2016:ideas [2016/02/11 17:55]
nurupo replaced Impyy with iphy, as Impyy won't be mentoring for GSoC 2016 and iphy agreed to take on Impyy's languages
developers:gsoc:2016:ideas [2016/02/24 19:57] (current)
iphydf [Language-independent Tox Core implementation tests]
Line 2: Line 2:
  
 See also: **[[developers:gsoc:general_information|Information about GSoC]]**, for our student expectations, proposals guidelines and more. See also: **[[developers:gsoc:general_information|Information about GSoC]]**, for our student expectations, proposals guidelines and more.
- 
-List of mentors: 
-^             ^ Email address          ^ 
-| benwaffle                          | 
-| dvor        |                        | 
-| grayhatter  | <grayhatter@tox.chat>  | 
-| iphy        | <iphydf@gmail.com>     | 
-| irungentoo  |                        | 
-| JX7P        |                        | 
-| mannol      | <mannol@tox.chat>      | 
-| wiiaam      |                        | 
-| stal        |                        | 
-| zero-one    |                        | 
-| zetok                              | 
-===== Idea template ===== 
- 
-Use the following template for adding your own ideas. 
- 
-Create a project header if there isn't one already and add your ideas under the corresponding project. 
- 
-The project header should be followed by link(s) to pages related to the project. If your project has its own wiki page describing it, it would make a link. From the link(s) you provide, at the very least, the student should be able to get information on general description of the project, maintainer's IRC nick or email and the location of code repository and bug tracker. 
- 
-Before suggesting an idea, take into consideration that students will be working for 3 months on it, so please refrain from suggesting ideas that are likely to be finished too early or too late. 
- 
-When writing an idea, make sure that you don't use any Tox-specific jargon that a student won't understand. Write in simple terms, so that college students unfamiliar with Tox could understand. 
- 
-It's suggested to always include your (mentor's) email into the **Mentor** field, because we found that it's a lot easier to follow which student is which through emails, rather than having hundreds of students joining IRC, asking you questions while you are AFK, and leaving afterwards. It also helps when you need to find your previous conversation with a student. 
- 
-You are encouraged to look into Ideas pages for the previous GSoC years: [[developers:gsoc:2014:ideas|2014]], [[developers:gsoc:2015:ideas|2015]]. 
- 
- 
-===== Project name ===== 
- 
-[[https://example.org|Project link 1]], [[https://example.org|Project link 2]], [[https://example.org|Project link 3]], etc. 
- 
- 
-==== Idea name ==== 
- 
-**Brief explanation**: explanation of your idea. Don't put explanation of what Project name is, that should be taken care of by the links or a description below the project header 
- 
-**Expected results**: a list of what you expect students to complete by the end of 3 months 
- 
-**References**: links to related bug tracker tickets, discussions and so on 
- 
-**Knowledge Prerequisite**: languages, libraries, fields of knowledge (networking, parallel processing, etc) and similar 
- 
-**Difficulty**: Easy, Medium or Hard 
- 
-**Mentor**: email and IRC nick 
  
 ===== Infrastructure ===== ===== Infrastructure =====
  
 This project is collection of all Tox Project infrastructure. This project is collection of all Tox Project infrastructure.
- 
  
 ==== Website improvements ==== ==== Website improvements ====
  
-**Brief explanation**: Improve the project website at [[https://tox.chat]] to include more information and to become more maintainable.+**Brief explanation**: Improve the project website at [[https://tox.chat]] to include more informationto become more maintainable, and to keep an efficient and friendly design.
   * Prefer static content generation.   * Prefer static content generation.
   * All dynamic information provided in HTML should have machine-readable (e.g. JSON) alternatives.   * All dynamic information provided in HTML should have machine-readable (e.g. JSON) alternatives.
Line 78: Line 28:
 **Difficulty**: Easy **Difficulty**: Easy
  
-**Mentor**: zero-one+**Mentor**: [[zero-one@tox.chat|zero-one]]
  
 ===== Tox Core ===== ===== Tox Core =====
  
-[[users:faq|Toxcore]]+[[users:faq|Toxcore]], [[https://github.com/irungentoo/toxcore|Repository]], [[https://github.com/Tox-Docs/Text|Protocol Docs]]
  
 ==== Language-independent Tox Core implementation tests ==== ==== Language-independent Tox Core implementation tests ====
Line 94: Line 44:
 **Expected results**: **Expected results**:
   * Design document and interface specification.   * Design document and interface specification.
-  * A complete set of functional tests for every component of Tox Core as specified in its [[https://github.com/Tox-Docs/Text|documentation]].+  * A complete set of functional tests for every component of Tox Core as specified in its [[https://toktok.github.io/spec|specification]].
   * Optionally, but highly recommended as a means for self-validation: implementation of the provider-side in libtoxcore.   * Optionally, but highly recommended as a means for self-validation: implementation of the provider-side in libtoxcore.
   * Optionally: a testing interface for multiple nodes with different (or the same) implementations to run in a simulated environment.   * Optionally: a testing interface for multiple nodes with different (or the same) implementations to run in a simulated environment.
Line 102: Line 52:
 **Difficulty**: Medium **Difficulty**: Medium
  
-**Mentor**: irungentoo for the libtoxcore side + see language/mentor table below.+**Mentor**: [[irungentoo@tox.chat|irungentoo]] for the libtoxcore side + see language/mentor table below.
  
 ==== Implement Tox protocol in another language ==== ==== Implement Tox protocol in another language ====
  
-**Brief explanation**: Using only the [[https://github.com/Tox-Docs/Text|Tox Core documentation]], write a complete implementation in a memory-safe language.+**Brief explanation**: Using only the [[https://toktok.github.io/spec|Tox Protocol Specification]], write a complete implementation in a memory-safe language.
  
 Language choices are currently: Language choices are currently:
  
-^ Language        ^ Mentor      +^ Language        ^ Mentor                                      ^ Link                                                                                  
-| C#              | iphy        +| C#              | [[iphydf@gmail.com|iphy]]                                                                                                         
-| Coq             | iphy        +| Coq             | [[iphydf@gmail.com|iphy]]                                                                                                         
-| Cyclone         | iphy        +| Cyclone         | [[iphydf@gmail.com|iphy]]                                                                                                         
-| F#              | iphy        +| F#              | [[iphydf@gmail.com|iphy]]                                                                                                         
-| **Go**          | iphy        +| **Go**          | [[iphydf@gmail.com|iphy]]                   | https://github.com/vikstrous/gotox                                                    
-| **Haskell**     | iphy        +| **Haskell**     | [[iphydf@gmail.com|iphy]]                   | https://github.com/iphydf/hstox                                                       
-| JX-Objective C  | JX7P        +| JX-Objective C  | [[sagem.tox@gmail.com|JX7P]]                |                                                                                       
-| MISRA-C/C++     | grayhatter  +| MISRA-C/C++     [[grayhatter@tox.chat|grayhatter]]          |                                                                                       
-| OCaml           | iphy        +| OCaml           | [[iphydf@gmail.com|iphy]]                                                                                                         
-| **Rust**        | zetok       +| **Rust**        | [[iphydf@gmail.com|iphy]] / zetok           | https://github.com/zetok/tox                                                          
-| Safe-D          | JX7P        +| Safe-D          | [[sagem.tox@gmail.com|JX7P]]                |                                                                                       
-| **Scala**       | iphy        +| **Scala**       | [[iphydf@gmail.com|iphy]]                   | https://github.com/iphydf/tox4j/tree/master/projects/tox4j/src/main/java/im/tox/core  
-| SML             | iphy        +| SML             | [[iphydf@gmail.com|iphy]]                                                                                                         
-| Swift           | dvor, stal  | +| Swift           [[d@dvor.me|dvor]][[stal@tox.chat|stal]]                                                                                        |
-| Vala            benwaffle   |+
  
 Safe-D is D where all public entry points are @safe and no internal functions are @trusted. **Bold** languages are ones that have a beginning of an implementation. Safe-D is D where all public entry points are @safe and no internal functions are @trusted. **Bold** languages are ones that have a beginning of an implementation.
Line 151: Line 100:
 **Difficulty**: Medium **Difficulty**: Medium
  
-**Mentor**: mannol+**Mentor**: [[mannol@tox.chat|mannol]]
  
 ==== Multi-Device Support ==== ==== Multi-Device Support ====
Line 165: Line 114:
 **Difficulty**: Medium to Hard **Difficulty**: Medium to Hard
  
-**Mentor**: grayhatter on irc.freenode.net+**Mentor**: [[grayhatter@tox.chat|grayhatter]]
  
 ==== Mobile-friendliness improvements ==== ==== Mobile-friendliness improvements ====
Line 179: Line 128:
 **Difficulty**: Medium **Difficulty**: Medium
  
-**Mentor**: irungentoo for libtoxcore, iphy/wiiaam for Antox +**Mentor**: [[irungentoo@tox.chat|irungentoo]] for libtoxcore, [[iphydf@gmail.com|iphy]] for Antox
-===== qTox ===== +
- +
-[[clients:qtox|Project link]]+
-==== Multimedia Streaming ==== +
- +
-**Brief Explanation**: A student will enable users to stream their webcams, an area of their screen, or any media file, composited and arranged as the user wishes.  +
- +
-**Expected Results**: +
-  * qTox allows selecting arbitrary combinations of media files, webcams, and desktop, as video sources to composite and stream into one-to-one- and group- calls +
-  * qTox provides a graphical interface to arrange the feeds spatially +
-  * qTox provides an in-call interface for managing the playback of media files selected as sources +
- +
-Note that there is at least one open source/libre software project that provides similar featuresnamely [[https://obsproject.com/|OBS MultiPlatform]]. It may well be possible to borrow code from or collaborate with that project. +
- +
-**Knowledge Prerequisite**: Qt, multimedia framework +
- +
-**Difficulty**: Hard +
- +
-**Mentor**: TBA+
  
 ===== Tox4j ===== ===== Tox4j =====
Line 280: Line 210:
 **Difficulty**: Medium **Difficulty**: Medium
  
-**Mentor**: [[iphydf@gmail.com|iphy]], wiiaam+**Mentor**: [[iphydf@gmail.com|iphy]]
  
 ==== JVM implementation of the Tox protocol ==== ==== JVM implementation of the Tox protocol ====
Line 378: Line 308:
 **Expected results**: **Expected results**:
  
-Using existing Objective C wrapper for toxcore create a fully functional client for OS X. Client should be written in Swift and should have following features:+Using existing Objective C wrapper for toxcorecreate a fully functional client for OS X. Client should be written in Swift and should have following features:
  
 //Required:// //Required://
Line 395: Line 325:
 **Difficulty**: Medium **Difficulty**: Medium
  
-**Mentor**: [[d@dvor.me|dvor]]+**Mentor**: [[d@dvor.me|dvor]], [[chuongv@uci.edu|chuongv]] (backup mentor)
Print/export