code: fqa.9front.org

ref: ee293e3c2182527ef91f9c40de6863aa5fca6374
dir: /appendixg.ms/

View raw version
.\" This troff source is processed to create all forms of the
.\" 9FRONT DASH 1 book and the http://fqa.9front.org website.
.\" NOTE: Purely experimental. Methods employed may change.
.\" troff -ms -mpictures appendixg.ms | page
.\" htmlroff -u -ms -mhtml appendixg.ms >appendixg.html
.de FG	\" .FG <basename>
.ie h .html - <img src="\\$1.\\$2" />
.el .BP \\$1.ps
.br
..
.bp
.po 1i \" page offset (from left)
.fp 1 R LucidaSans
.fp 2 I LucidaSansI
.fp 3 B LucidaSansB
.fp 4 BI LucidaSansI
.fp 5 CW LucidaCW
.paragraph 0
.margin 0
.HTML "Appendix G - GSOC
.html - <style type="text/css">body{font-size:10pt}; a{font-size:10pt}</style>
.html - <a href="fqa.html">FQA INDEX</a> |
.html - <a href="appendixb.html">Appendix B - Bounties</a> |
.html - <a href="appendixj.html">Appendix J - Junk</a>
.html - <hr />
.SH
.LG
.ihtml h1 <h1>
Appendix G - GSOC
.ihtml h1
.NL
.R
.html - <a href="appendixg.html">html</a> |
.html - <a href="appendixg.pdf">pdf</a> |
.html - <a href="appendixg.ms">troff</a>

.SH
GSOC project ideas
.R

.FG gsoc_patch png

.SH
Difficulty on a scale 1-5
.R

Generally all of our projects require C programming and prior experience with C is a prerequisite for all of them. Prior experience with Plan 9, while not technically a prerequisite, is extremely helpful and any student is advised to at least carefully read the Plan 9 documentation before applying.

.B
MPEG-4 decoder (4)
.R
.br
The goal of this project is to create a video decoder to allow native playback of MPEG-4 video. This is a very challenging project that requires a very solid background in C.
Potential mentors: cinap_lenrek
Skills: Reading and understanding the MPEG-4 documentation which probably requires a certain minimum of mathematical skills, writing and debugging complex programs

.B
Sam scrolling and other GUI work (2)
.R
.br
Scrolling in the text editor sam is currently very erratic. The goal of this project is to improve on this situation. This project does not require much programming per se but it does require analyzing, understanding and improving existing code.
This project would probably be extended to fixing other GUI problems.
Potential mentors: cinap_lenrek, Ori_B
Skills: being able to innovate, coming up with algorithms for GUI problems such as scrolling

.B
Improved APE (2)
.R
.br
Our ANSI/POSIX emulation layer is currently very unpolished and improving the coverage would be a worthwhile project. This is not very difficult but probably a lot of work.
Potential mentors: cinap_lenrek, Ori_B
Skills: reading ANSI/POSIX documentation, debugging code written by other people

.B
 Drivers (3) 
.R
.br
This project would consist of multiple drivers (to be decided) that need to be written. This project is modestly challenging.
Potential mentors: cinap_lenrek
Skills: general systems programming, prior OS development experience helpful

.B
 DjVu/CHM/Jbig2 support (2) 
.R
.br
Our document reader page(1) needs DjVu, CHM and Jbig2 (PDF encoding) support. Another project that's not particularly challenging but a lot of work.
Potential mentors: cinap_lenrek, Ori_B
Skills: reading and implementing documentation for various document standards, some experience with image processing probably helpful

.B
 Improving acid (3) 
.R
.br
Our debugger acid(1) lacks several useful debugging features that might be worth looking into, such as watchpoints. The goal would be to research what might be good features and implement them. This may require kernel changes.
Potential mentors: cinap_lenrek
Skills: general systems programming, familiarity with low-level concepts

.B
 Implement ECDSA and ECDHE for TLS (2) 
.R
.br
This would be implementing the ECC cipher suits for TLS (rfc4492) with libsecs ec(2) functions. This should be a relatively easy task for beginners.
Potential mentors: cinap_lenrek
Skills: reading standards, reading code, cryptopgraphy

.B
 Version control hosting support for werc (1) 
.R
.br
.ihtml a <a href="http://werc.cat-v.org/">
Werc
.ihtml a
is a web anti-framework written in rc, the Plan 9 shell.
.ihtml a <a href="https://code.google.com/p/plan9front/source/browse/rc/bin/rc-httpd/">
rc-httpd
.ihtml a
is an HTTP server written in the same language.  9front uses
.ihtml a <a href="https://git-scm.com/">
git
.ihtml a
for version control -- but nobody's done much work on making 9front able to *host* git repos.  This project would involve setting up werc and rc-httpd on a 9front System, then teaching werc to work with hg to host repositories.  For bonus points, test your changes on a UNIX system to make sure it's portable!
Potential mentors: khm
Skills: web stuff, mercurial, rc scripting
.B
Note:
.R
9front has recently switched from
.ihtml a <a href="https://code.9front.org/hg/plan9front">
mercurial hosted on 9front
.ihtml a
to
.ihtml a <a href="http://git.9front.org/plan9front/plan9front/HEAD/info.html">
git hosted on 9front,
.ihtml a
so this project may now be obsolete. (Pending redaction.)

.B
 Internet of things project: use 9p for sensor networks (1-2) 
.R
.br
Write a 9p server and client (as you see fit) on the orchestrator and nodes.
Create and evaluate text-based protocol for 9p-based sensor network orchestration.
You can use rpi for everything, but are also free to choose a low-power solution for the nodes if you're up for some low-level C programming experience.
Potential mentors: jpm
Skills: soldering, theory of sensor networks, C

.html - <hr />
.html - <a href="fqa.html">FQA INDEX</a> |
.html - <a href="appendixb.html">Appendix B - Bounties</a> |
.html - <a href="appendixj.html">Appendix J - Junk</a>