Differences

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

Link to this comparison view

Next revision
Previous revision
developers:gsoc:2015:ideas [2015/07/25 07:55]
nurupo Ported page from the old wiki
developers:gsoc:2015:ideas [2016/01/22 21:55] (current)
nurupo fixed mailto
Line 1: Line 1:
 ====== GSoC 2015 Ideas ====== ====== GSoC 2015 Ideas ======
  
-See also: **[[developers:gsoc:gsoc|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.
  
 ===== Ideas ===== ===== Ideas =====
Line 7: Line 7:
 ==== Your Own Idea ==== ==== Your Own Idea ====
  
-**Brief explanation**: You have read this entire page, played a bit with Tox and thought of a super interesting Tox-related project idea that isn't on this page and on which you would like to work during this summer? Come to our [[IRC]] and tell it to us, we'll help you work out potential issues and help you improve your proposals. They might even be better than the ideas we've suggested here!+**Brief explanation**: You have read this entire page, played a bit with Tox and thought of a super interesting Tox-related project idea that isn't on this page and on which you would like to work during this summer? Come to our [[users:community#IRC|IRC]] and tell it to us, we'll help you work out potential issues and help you improve your proposals. They might even be better than the ideas we've suggested here!
  
 **Expected results**: To be determined. **Expected results**: To be determined.
Line 36: Line 36:
 **Mentor**: [[User:irungentoo|irungentoo]] **Mentor**: [[User:irungentoo|irungentoo]]
  
-===Multiple device support===+==== Multiple device support ====
  
 **Brief explanation**: Toxcore currently suffers from a number of serious issues when 2 Tox objects are used at once on the distributed network. Your task would be to research and implement secure ways of sharing data like secret keys, friends, and chats while making toxcore deal with the same peer having presence in multiple locations seamlessly. **Brief explanation**: Toxcore currently suffers from a number of serious issues when 2 Tox objects are used at once on the distributed network. Your task would be to research and implement secure ways of sharing data like secret keys, friends, and chats while making toxcore deal with the same peer having presence in multiple locations seamlessly.
Line 49: Line 49:
 **Mentor**: [[User:irungentoo|irungentoo]] **Mentor**: [[User:irungentoo|irungentoo]]
  
-===QXR0YWNrIHRoZSBUb3ggTmV0d29yayAK===+==== QXR0YWNrIHRoZSBUb3ggTmV0d29yayAK ====
  
 **Brief explanation**:  **Brief explanation**: 
Line 75: Line 75:
  
 <WRAP center round important 40%> <WRAP center round important 40%>
-**Important: please register on the [[https://groups.google.com/forum/#!forum/tox4j|mailing list]] and send your questions to [[mailto:tox4j+gsoc@googlegroups.com|the GSoC address]].**+**Important: please register on the [[https://groups.google.com/forum/#!forum/tox4j|mailing list]] and send your questions to [[tox4j+gsoc@googlegroups.com|the GSoC address]].**
 </WRAP> </WRAP>
  
Line 90: Line 90:
  
 **Important:** **Important:**
-  * If you do not understand the idea, but think that you might be interested, please come and talk to us on [[users:community|IRC]] (#tox-gsoc-students) or send an email to the mailing list (don't say "can you explain more?", but ask specific questions about things you want to know).+  * If you do not understand the idea, but think that you might be interested, please come and talk to us on [[users:community#IRC|IRC]] (#tox-gsoc-students) or send an email to the mailing list (don't say "can you explain more?", but ask specific questions about things you want to know).
   * We want to see that you put some thought into the project, you have a rough idea of what it entails, and that you understand the project idea written on this page. We have put a lot of thought into the idea, so we would like to see you spend some time thinking about it, as well. We do not want to see something that is essentially a copy of the idea, reworded a little.   * We want to see that you put some thought into the project, you have a rough idea of what it entails, and that you understand the project idea written on this page. We have put a lot of thought into the idea, so we would like to see you spend some time thinking about it, as well. We do not want to see something that is essentially a copy of the idea, reworded a little.
   * Don't write large amounts of text saying nothing with a lot of words. We're not a university, so we don't grade you based on word count. Be precise and to the point.   * Don't write large amounts of text saying nothing with a lot of words. We're not a university, so we don't grade you based on word count. Be precise and to the point.
-  * Structure your text with headings in bold. Preferably copy the wording from the [[developers:gsoc:gsoc|GSoC]] page. This makes it easier for us to compare the proposals. Use bullet lists if appropriate.+  * Structure your text with headings in bold. Preferably copy the wording from the [[developers:gsoc:general_information|GSoC]] page. This makes it easier for us to compare the proposals. Use bullet lists if appropriate.
   * Run a spelling checker. We don't mind if your English is not grammatically perfect, but running it through a spelling checker is the least you can do.   * Run a spelling checker. We don't mind if your English is not grammatically perfect, but running it through a spelling checker is the least you can do.
  
Line 134: Line 134:
   * User profiles: managing user profiles, user-specific settings (global settings like autostart are out of scope)   * User profiles: managing user profiles, user-specific settings (global settings like autostart are out of scope)
   * Chat logs: storage protocol, full text search, statistical data, ...   * Chat logs: storage protocol, full text search, statistical data, ...
-  * Protocol implementation for communication with toxdns services (e.g. toxme.se)+  * Protocol implementation for communication with toxdns services (e.g. toxme.io)
   * Custom Tox protocol extensions: e.g. location sharing, recommend friends, ...   * Custom Tox protocol extensions: e.g. location sharing, recommend friends, ...
  
Line 157: Line 157:
   * For every data structure (type), there must be a generator function that creates a random valid instance of that data structure. This will be used in property-based testing.   * For every data structure (type), there must be a generator function that creates a random valid instance of that data structure. This will be used in property-based testing.
   * Correct by construction: creating a new object must guarantee that its state is consistent and correct. In particular, this disallows a common Java idiom: creating an empty invalid object and making it valid by calling setters. If object creation can fail, the constructor function needs to be partial.   * Correct by construction: creating a new object must guarantee that its state is consistent and correct. In particular, this disallows a common Java idiom: creating an empty invalid object and making it valid by calling setters. If object creation can fail, the constructor function needs to be partial.
-  * "No raw ints": The use of ''int'' or other primitive data types is highly discouraged. Prefer to wrap them in a [http://docs.scala-lang.org/overviews/core/value-classes.html value class] with appropriate operations explicitly defined and checked on them (e.g. ''class FriendNumber'')+  * "No raw ints": The use of ''int'' or other primitive data types is highly discouraged. Prefer to wrap them in a [[http://docs.scala-lang.org/overviews/core/value-classes.html|value class]] with appropriate operations explicitly defined and checked on them (e.g. ''class FriendNumber'')
   * "No raw loops": The use of raw for-loops is highly discouraged. Prefer to use generic library functions.   * "No raw loops": The use of raw for-loops is highly discouraged. Prefer to use generic library functions.
   * "No raw getters": Getters are often a sign of poor encapsulation. Expose operations rather than data.   * "No raw getters": Getters are often a sign of poor encapsulation. Expose operations rather than data.
Line 188: Line 188:
 **Difficulty**: Medium **Difficulty**: Medium
  
-**Mentor**: [[mailto:iphydf@gmail.com|iphy]]+**Mentor**: [[iphydf@gmail.com|iphy]]
  
 ==== New Android client ==== ==== New Android client ====
Line 222: Line 222:
 **Difficulty**: Medium **Difficulty**: Medium
  
-**Mentor**: [[mailto:iphydf@gmail.com|iphy]]+**Mentor**: [[iphydf@gmail.com|iphy]]
  
 ==== Implementation of a ToxCore mock ==== ==== Implementation of a ToxCore mock ====
Line 265: Line 265:
 **Difficulty**: Medium **Difficulty**: Medium
  
-**Mentor**: [[mailto:iphydf@gmail.com|iphy]]+**Mentor**: [[iphydf@gmail.com|iphy]]
  
 ===== qTox ===== ===== qTox =====
Line 290: Line 290:
 Although that may seem like a lot for one student over the course of a summer, some progress is expected to be made between now and summer. Additionally, together with the following qTox project, there may well be two students working on qTox simultaneously. Although that may seem like a lot for one student over the course of a summer, some progress is expected to be made between now and summer. Additionally, together with the following qTox project, there may well be two students working on qTox simultaneously.
  
-**Proposals**: The ideas above are only a starting point for your proposal; after you review qTox and its code, you will likely have other things you think need to be fixed as well. Your proposal should specify what you intend to fix, drawing from both the ideas above and your own experience and opinions. In addition to the questions listed [[developers::gsoc:gsoc#Student_information|here]], I'd like you to answer the following questions:+**Proposals**: The ideas above are only a starting point for your proposal; after you review qTox and its code, you will likely have other things you think need to be fixed as well. Your proposal should specify what you intend to fix, drawing from both the ideas above and your own experience and opinions. In addition to the questions listed [[developers:gsoc:general_information#Student_information|here]], I'd like you to answer the following questions:
  
   * Are you familiar with Qt and C++? If so, please mention and link past work.   * Are you familiar with Qt and C++? If so, please mention and link past work.
Line 433: Line 433:
   * Implement video and audio capture for Windows and OS X   * Implement video and audio capture for Windows and OS X
  
-**References**: [[developers:gsoc:2015:ideas:audio_video_desktop_capting_library_specification|A work in progress specification of what the library should be able to do and what back-ends we'd like it to use]].+**References**: [[developers:gsoc:2015:ideas:audio_video_desktop_capture_library_specification|A work in progress specification of what the library should be able to do and what back-ends we'd like it to use]].
  
 **Knowledge Prerequisite**: C/C++, Obj-C. It's required to have at least two webcams, Windows 7 or newer and OS X 10.7 or newer. Knowledge of library development and familiarity with Windows API and OS X API are not required, but welcome. **Knowledge Prerequisite**: C/C++, Obj-C. It's required to have at least two webcams, Windows 7 or newer and OS X 10.7 or newer. Knowledge of library development and familiarity with Windows API and OS X API are not required, but welcome.
Print/export