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
public:gsoc:ideas_page_for_summer_of_code_2020 [2020/02/14 05:23]
cfsmp3
public:gsoc:ideas_page_for_summer_of_code_2020 [2020/03/01 18:06] (current)
cfsmp3 [The ideas we currently have]
Line 4: Line 4:
  
 ====== Google Summer of Code 2020 ====== ====== Google Summer of Code 2020 ======
-Welcome to our ideas page. It's great you want to start early. Please join us in our slack channel! (we'll leave as an exercise to you to find it it's on our website).+Welcome to our ideas page. It's great you want to start early. Please join us in our slack channel! (we'll leave as an exercise to you to find it — it's on our website).
  
-This is going to be an amazing year lots of new things to work on, including JokerTV, a totally open TV receiver, plus several experimental/​for fun projects. Projects in C, Node, Python, Rust... you name it, we have it. Plus resources for students ​we'll give access to a high speed server, all our samples (we'll even ship a portable drive with them anywhere in the world, so don't worry about slow connections).+This is going to be an amazing year — lots of new things to work on, including JokerTV, a totally open TV receiver, plus several experimental/​for fun projects. Projects in C, Node.js, Python, Rust and more, you name it, we have it. Plus resources for students ​— we'll give access to a high-speed server, all our samples (we'll even ship a portable drive with them anywhere in the world, so don't worry about slow connections) ​and various other perks.
  
-You are welcome to check out our ideas page (this is it - actual ideas at the bottom of the page) and start early in the community bonding process as well as learning a bit about our code. And of course, we'd love you to stay around even if we are not invited to GSoC or if we cannot invite you as a student. ​+You are welcome to check out the page (actual ideas at the bottom of the page, with each project having it's own separate page as well) and start early in the community bonding process as well as learning a bit about our code ethics and practices. And of course, we'd love you to stay around even if we are not invited to GSoC or if we cannot invite you as a student.
  
 ==== The ideas we currently have ==== ==== The ideas we currently have ====
Line 16: Line 16:
  
 After you check out our ideas please continue reading to the bottom of the page to get information about who we are, how we collaborate,​ what resources we will provide to you, etc. After you check out our ideas please continue reading to the bottom of the page to get information about who we are, how we collaborate,​ what resources we will provide to you, etc.
 +
 +__Some tasks descriptions are still vague. We know that. Feel free to get in touch for questions, or just check their page from time to time. We will update the descriptions often.__
  
 **Core subtitle tool (CCExtractor itself)** **Core subtitle tool (CCExtractor itself)**
 ^ Name      ^ Description ​      ^ Tech you need to know ^ Tech you will learn ^ Difficulty ^ ^ Name      ^ Description ​      ^ Tech you need to know ^ Tech you will learn ^ Difficulty ^
-| [[public:​gsoc:​complete708support |Complete 708 support]] | This is one of the big ones. Why? Because it's been on our wish list for some time and until now no one has decided to really go for it; after the initial work it's always been incremental improvements,​ but no one has raised their hand and said "​I'​m going to complete this". It's possible the code base it'​s ​not really friendly. Who knows. If this is the case we're OK with a total rewrite if that's what it takes to get this done. The details page has some more information if this picked your interest. \\ **This project is guaranteed to be selected if the proposal is good.** | C | Video standards \\ Subtitle standards \\ CCExtractor internals \\ Internationalization | Hard |+| [[public:​gsoc:​complete708support |Complete 708 support]] | This is one of the big ones. Why? Because it's been on our wish list for some time and until now no one has decided to really go for it; after the initial work it's always been incremental improvements,​ but no one has raised their hand and said "​I'​m going to complete this". It's possible the code base is not really friendly. Who knows. If this is the case we're OK with a total rewrite if that's what it takes to get this done. The details page has some more information if this picked your interest. \\ **This project is guaranteed to be selected if the proposal is good.** | C | Video standards \\ Subtitle standards \\ CCExtractor internals \\ Internationalization | Hard |
 | [[public:​gsoc:​livetvooverinternet |Add support for streaming Live TV]] | A number of streaming platforms now offer support for internet based live TV, which is great: It lets you watch TV on the go, it lets you get rid of cable, satellite and areal antennas... unfortunately,​ this live TV is not standardized at all. Your job is to do the work to add suport for Hulu and Youtube. We will pay for the subscription costs as well as any required infrastructure. | Any | Video standards \\ Subtitle standards \\ Live streaming platforms \\ | Unknown | | [[public:​gsoc:​livetvooverinternet |Add support for streaming Live TV]] | A number of streaming platforms now offer support for internet based live TV, which is great: It lets you watch TV on the go, it lets you get rid of cable, satellite and areal antennas... unfortunately,​ this live TV is not standardized at all. Your job is to do the work to add suport for Hulu and Youtube. We will pay for the subscription costs as well as any required infrastructure. | Any | Video standards \\ Subtitle standards \\ Live streaming platforms \\ | Unknown |
 | [[public:​gsoc:​jokertv | Work on JokerTV integration]] | JokerTV is an excellent open hardware and software platform (think Arduino, but for TV). It's still early days, and we really want to be among the first supporting this amazing new platform. JokerTV can receive signals from all TV standards around the world (finally!, no more European or American models, etc). We will buy one device for the student (or students, if their ideas are different) that works on this. \\ Abylay Ospan, the genius behind JokerTV has agreed to mentor. |C|Hardware \\ Video standards \\ Joker (the platform) | Unknown | | [[public:​gsoc:​jokertv | Work on JokerTV integration]] | JokerTV is an excellent open hardware and software platform (think Arduino, but for TV). It's still early days, and we really want to be among the first supporting this amazing new platform. JokerTV can receive signals from all TV standards around the world (finally!, no more European or American models, etc). We will buy one device for the student (or students, if their ideas are different) that works on this. \\ Abylay Ospan, the genius behind JokerTV has agreed to mentor. |C|Hardware \\ Video standards \\ Joker (the platform) | Unknown |
-| [[public:​gsoc:​pythonbindings |Write Python bindings for CCExtractor]] | This was partially done during GSoC 2017, but the approach was totally wrong a wrapper, instead of Cython. \\ Let's cut our losses and start over. | C \\ Python | Obscure C+Python topics \\ CCExtractor internals | Medium |+| [[public:​gsoc:​pythonbindings |Write Python bindings for CCExtractor]] | This was partially done during GSoC 2017, but the approach was totally wrong — a wrapper, instead of Cython. \\ Let's cut our losses and start over. | C \\ Python | Obscure C+Python topics \\ CCExtractor internals | Medium |
 | [[public:​gsoc:​DTMB |Add support for DTMB countries]] | DTMB is the standard for Chinese TV, also implemented by countries such as Cuba. What kind of student is ideal for this task? One with lots of analytic skills and patience. If you are one of those, don't disregard this task just because you don't speak (or maybe, even care) about Chinese. The experience on dealing with this will be extremely valuable in the future. \\ We will use part of the organization funds to buy standard documents you might need, a capture device, and in general, anything required to make your life easier.\\ | C | DTMB \\ Video standards \\ Hardware \\ Research | Unknown | | [[public:​gsoc:​DTMB |Add support for DTMB countries]] | DTMB is the standard for Chinese TV, also implemented by countries such as Cuba. What kind of student is ideal for this task? One with lots of analytic skills and patience. If you are one of those, don't disregard this task just because you don't speak (or maybe, even care) about Chinese. The experience on dealing with this will be extremely valuable in the future. \\ We will use part of the organization funds to buy standard documents you might need, a capture device, and in general, anything required to make your life easier.\\ | C | DTMB \\ Video standards \\ Hardware \\ Research | Unknown |
 | [[public:​gsoc:​ocr |Improve our OCR subsystem ]] | We use tesseract to OCR bitmap based subtitles. In theory this is straight forward, but when you take into consideration all variants (color, languages, subtitles burned-in image, even moving text such as tickers) the complexity grows fast. Still, the work done by PhD students in the past is great, and we're confident this year we can complete the work on this area if someone of the same caliber decides to join the effort. | C | Tesseract \\ Imaging \\ OCR  | Suspected hard | | [[public:​gsoc:​ocr |Improve our OCR subsystem ]] | We use tesseract to OCR bitmap based subtitles. In theory this is straight forward, but when you take into consideration all variants (color, languages, subtitles burned-in image, even moving text such as tickers) the complexity grows fast. Still, the work done by PhD students in the past is great, and we're confident this year we can complete the work on this area if someone of the same caliber decides to join the effort. | C | Tesseract \\ Imaging \\ OCR  | Suspected hard |
Line 29: Line 31:
 ** Artificial Intelligence and clever algorithms ** ** Artificial Intelligence and clever algorithms **
 ^ Name      ^ Description ​      ^ Tech you need to know ^ Tech you will learn ^ Difficulty ^ ^ Name      ^ Description ​      ^ Tech you need to know ^ Tech you will learn ^ Difficulty ^
-| [[public:​gsoc:​poormanrekognition2|Poor'​s ​man Rekognition (II)]] | Amazon Rekognition is a (paid) service that is able to identify celebrity faces in a picture. Last year we did some work towards creating a free alternative. This year we want to improve on the past work. | Your choice | AI \\ Computer vision | Unknown | +| [[public:​gsoc:​poormanrekognition2|Poor ​man's Rekognition (II)]] | Amazon Rekognition is a (paid) service that is able to identify celebrity faces in a picture. Last year we did some work towards creating a free alternative. This year we want to improve on the past work. | Your choice | AI \\ Computer vision | Unknown | 
-| [[public:​gsoc:​poormantextract|Poor'​s ​man Textract]] | Amazon Textract a (paid) service that "​automatically extracts text and data from scanned documents. Amazon Textract goes beyond simple optical character recognition (OCR) to also identify the contents of fields in forms and information stored in tables."​. We want to build a free alternative that provides an output of similar quality. | Your choice | AI \\ Computer vision \\OCR | Unknown |+| [[public:​gsoc:​poormantextract|Poor ​man's Textract]] | Amazon Textract a (paid) service that "​automatically extracts text and data from scanned documents. Amazon Textract goes beyond simple optical character recognition (OCR) to also identify the contents of fields in forms and information stored in tables."​. We want to build a free alternative that provides an output of similar quality. | Your choice | AI \\ Computer vision \\ OCR | Unknown |
  
 ** Support tools we and other orgs use as part of their development process** ** Support tools we and other orgs use as part of their development process**
Line 41: Line 43:
 | [[public:​gsoc:​pythonprofiler | An "​algorithm video creator"​ in Python ]] | During Google Code-in we got some proof of concepts that are actually quite cool. We want to build a complete tool that helps study and understand algorithms | Python | Python internals \\ Algorithms | Medium | | [[public:​gsoc:​pythonprofiler | An "​algorithm video creator"​ in Python ]] | During Google Code-in we got some proof of concepts that are actually quite cool. We want to build a complete tool that helps study and understand algorithms | Python | Python internals \\ Algorithms | Medium |
 | [[public:​gsoc:​ffmpeg-rust | FFmpeg + Rust ]] | This project is two fold: One, is create proper Rust bindings into FFmpeg'​s libraries. The 2nd, and harder, is create a "graph to code" generator | C or C++ | FFmpeg'​s internals \\ Rust | Possibly hard | | [[public:​gsoc:​ffmpeg-rust | FFmpeg + Rust ]] | This project is two fold: One, is create proper Rust bindings into FFmpeg'​s libraries. The 2nd, and harder, is create a "graph to code" generator | C or C++ | FFmpeg'​s internals \\ Rust | Possibly hard |
-| [[public:​gsoc:​rcloneweb2 | Extend rclone'​s web UI (mentored by Nick Craig-Wood, rclone'​s developer) ]] | rclone is a fantastic tool to synchronize cloud storage. It's rsync for the cloud. Last year we started a web UI, and it was a successful GSoC project. We want to continue working on it. | Cloud (lots) \\ Web (different tech) | | Medium |+| [[public:​gsoc:​rcloneweb2 | Extend rclone'​s web UI (mentored by Nick Craig-Wood, rclone'​s developer) ]] | rclone is a fantastic tool to synchronize cloud storage. It's rsync for the cloud. Last year we started a web UI, and it was a successful GSoC project. We want to continue working on it. | Cloud (lots) \\ Web (different tech) | — | Medium |
 | [[public:​gsoc:​swaglyrics | SwagLyrics]] | Last Summer of Code, we came up with a platform to align lyrics to their temporal location in the audio (https://​github.com/​SwagLyrics/​autosynch). This year, we want to improve it, and integrate it to SwagLyrics proper. | Python (mainly) | Depends on your idea | Medium to Unknown | | [[public:​gsoc:​swaglyrics | SwagLyrics]] | Last Summer of Code, we came up with a platform to align lyrics to their temporal location in the audio (https://​github.com/​SwagLyrics/​autosynch). This year, we want to improve it, and integrate it to SwagLyrics proper. | Python (mainly) | Depends on your idea | Medium to Unknown |
 | [[public:​gsoc:​votecounter | Vote counter and reporter ]] | More and more countries depend on electronic vote counting and/or reporting in their elections, and apparently no one can get this right. Either no one knows how to do it or they know exactly what they are doing. Both things are worrying, to say the least. We want to spend this summer working on an open-source solution everybody and use and audit, in any country. | Systems design ​ | Flutter (frontend), \\ your choice (backend) | Hard | | [[public:​gsoc:​votecounter | Vote counter and reporter ]] | More and more countries depend on electronic vote counting and/or reporting in their elections, and apparently no one can get this right. Either no one knows how to do it or they know exactly what they are doing. Both things are worrying, to say the least. We want to spend this summer working on an open-source solution everybody and use and audit, in any country. | Systems design ​ | Flutter (frontend), \\ your choice (backend) | Hard |
-| [[public:​gsoc:​rule-engine ​Rule Engine ​]] | This project would involve creating an API first rule engine with the ability ​to process rules written in expression languages ​like MVEL ( easily extensible ​to others like SPeL etc.) at runtime in highly concurrent fashioncreating a reactive microservice around this rule engine and a web-app interacting with the microservice allowing expression evaluation on the fly.| JavaSpringRxJava ​MVELSPEL, System Design ​Medium - Hard | +| [[public:​gsoc:​mouseless ​Mouseless for Linux ]] | Mouseless is a nice tool to practice keyboard shortcuts for a few popular apps. Unfortunately it's only available for Mac. We'​d ​like to create an open-source Linux version that can be easily extended| Your choice | ?? | Unknown | 
- +| [[public:​gsoc:​flutterrutorrent | rutorrent mobile interface ]] | rutorrent is the most popular web interface for rtorrentwhich is possibly the most used BitTorrent client in linux. The job is to write Flutter based web interface that uses rutorrent'​s backend service to provide a native interface. | Flutter | BitTorrent | Medium | 
 +| [[public:​gsoc:​cloudtorrent | The next peer-to-peer protocol ]] | BitTorrent is of course ​the world'​s most used peer to peer protocol. It's great, but it was designed before ​the cloud was ubiquitous and it doesn'​t make use of the places where you have the most storage or the most bandwidthCan we design something for the next decade? ​Depends | Peer-to-peer\\ cloud | Medium | 
 +| [[public:​gsoc:​linuxtuning| Linux tuning for network throughput ]] | Come up with a system that tunes the linux kernel to maximize network throughput for a number of workloadssuch as web server or BitTorrent ​Linux | Kernel internals\\ Networking ​| Hard |
  
 ==== About us ==== ==== About us ====
  
-We are a small org, which means that your contribution will have a large impact. It's not going to mean a 0.5% improvement on a big project ​it's going to be more than 10% on a medium size one. If you like challenges and want a chance to shine this is your place.+We are a small org, which means that your contribution will have a large impact. It's not going to mean a 0.5% improvement on a big project ​— it's going to be more than 10% on a medium size one. If you like challenges and want a chance to shine this is your place.
  
 We have -we think- statistically amazing continuity in the team: Most GSoC students from all the past years are still involved, even if they are no longer eligible as students. They still contribute code, and they mentor both in GSoC and the sister program GCI. As mentors, they also come to the Summer of Code summit which traditionally takes place in October. ​ We have -we think- statistically amazing continuity in the team: Most GSoC students from all the past years are still involved, even if they are no longer eligible as students. They still contribute code, and they mentor both in GSoC and the sister program GCI. As mentors, they also come to the Summer of Code summit which traditionally takes place in October. ​
Line 62: Line 65:
 **All our top committers will be mentoring**. Many of them are former GSoC students or winners of GCI.  **All our top committers will be mentoring**. Many of them are former GSoC students or winners of GCI. 
  
-==== Books / other references ​====+==== Perks ====
  
 __All accepted students get a programming book immediately after being accepted__, with the hope that they read them before the coding starts. We want to see if this increases the quality of the work. So far we have selected these three books (pick one), but we're open to suggestions:​ [[https://​www.amazon.com/​Clean-Code-Handbook-Software-Craftsmanship/​dp/​0132350882|Clean Code]], [[https://​www.amazon.com/​Elements-Programming-Interviews-Python-Insiders/​dp/​1537713949|Elements of Programming Interviews in Python]], [[https://​www.amazon.com/​Cracking-Coding-Interview-Programming-Questions/​dp/​0984782850|Cracking the code interview]]. __All accepted students get a programming book immediately after being accepted__, with the hope that they read them before the coding starts. We want to see if this increases the quality of the work. So far we have selected these three books (pick one), but we're open to suggestions:​ [[https://​www.amazon.com/​Clean-Code-Handbook-Software-Craftsmanship/​dp/​0132350882|Clean Code]], [[https://​www.amazon.com/​Elements-Programming-Interviews-Python-Insiders/​dp/​1537713949|Elements of Programming Interviews in Python]], [[https://​www.amazon.com/​Cracking-Coding-Interview-Programming-Questions/​dp/​0984782850|Cracking the code interview]].
  
-We will also provide 6 months of access (from the acceptance date) to all courses in [[https://​www.educative.io/​|educative.io]]+We will also provide ​to all accepted students: 
 +6 months of access (from the acceptance date) to all courses in [[https://​www.educative.io/​|educative.io]] 
 +- 12 months of access (from the acceptance date) to [[https://​backtobackswe.com|backtobackswe]],​ which is a fantastic resource to learn algorithms, prepare for coding interviews, and in general learn fundamentals. 
  
 The student working on CEA-708 will also receive a copy of the latest CEA-708 specification document. The student working on CEA-708 will also receive a copy of the latest CEA-708 specification document.
Line 72: Line 78:
 ==== About what we use ==== ==== About what we use ====
  
-This is what we use **today**. It doesn'​t mean this is what we want to continue using. Probably not we're really open to change. We're just describing the status quo so you know what you are getting into :-)+This is what we use **today**. It doesn'​t mean this is what we want to continue using. Probably not — we're really open to change. We're just describing the status quo so you know what you are getting into :-)
  
 The core tool that names the organization (CCExtractor) is a command-line program written in **C** (not C++).\\ The core tool that names the organization (CCExtractor) is a command-line program written in **C** (not C++).\\
Line 88: Line 94:
 ==== About sample media and other resources ==== ==== About sample media and other resources ====
  
-We work with huge files. Not all of them are huge, but many are. We know that many students don't have access to high speed internet. To those students we will ship (as soon as they are selected) a portable hard drive with all our samples. So if your internet connection is not good, don't worry as long as you can plug a USB drive to your development computer you can participate with us.+We work with huge files. Not all of them are huge, but many are. We know that many students don't have access to high speed internet. To those students we will ship (as soon as they are selected) a portable hard drive with all our samples. So if your internet connection is not good, don't worry — as long as you can plug a USB drive to your development computer you can participate with us.
  
 We also have a shared Linux development server with lots of storage and a Gigabit uplink. Students get an account on it and they are welcome to use it. There'​s nothing there except our own work, so it's a trusted environment (for a server that is connected to internet of course). We also have a shared Linux development server with lots of storage and a Gigabit uplink. Students get an account on it and they are welcome to use it. There'​s nothing there except our own work, so it's a trusted environment (for a server that is connected to internet of course).
Line 121: Line 127:
  
 The sample platform'​s issues are tagged with "​gsoc-proposal-task",​ so you can easily see what you can work on.\\ The sample platform'​s issues are tagged with "​gsoc-proposal-task",​ so you can easily see what you can work on.\\
 +
 +=== Take home qualification tasks === 
 +If instead of working on existing code you'd prefer to show us your skills working on something new, you can pick one of [[public:​gsoc:​takehome|these projects]].
  
 ==== Community etiquette ==== ==== Community etiquette ====
Line 143: Line 152:
 At the very least your proposal needs to\\ At the very least your proposal needs to\\
  
-- Explain what you do want to do, why it is important to you (don't make up a story here the reason can be that you need it, that you just think it's cool, that you have an itch to work on it, etc), and why it could be important or useful to us.\\+- Explain what you do want to do, why it is important to you (don't make up a story here — the reason can be that you need it, that you just think it's cool, that you have an itch to work on it, etc), and why it could be important or useful to us.\\
 - Explain how you intend to accomplish the goal, in enough detail that makes it clear that you have done your homework. For example, "I will modify the CCExtractor binary so that it's able to convert audio to text with perfect accuracy"​ is the same thing as sending your proposal to the trash. You need to have a plan.\\ - Explain how you intend to accomplish the goal, in enough detail that makes it clear that you have done your homework. For example, "I will modify the CCExtractor binary so that it's able to convert audio to text with perfect accuracy"​ is the same thing as sending your proposal to the trash. You need to have a plan.\\
 - Detail the timeline explaining what the expected progress is for each week or every two weeks (pay special attention to the milestones within the GSoC timeline itself, of course) and how we should validate the results.\\ - Detail the timeline explaining what the expected progress is for each week or every two weeks (pay special attention to the milestones within the GSoC timeline itself, of course) and how we should validate the results.\\
  • public/gsoc/ideas_page_for_summer_of_code_2020.1581657791.txt.gz
  • Last modified: 2020/02/14 05:23
  • by cfsmp3