File:  [NetBSD Developer Wiki] / wikisrc / projects / code-in.mdwn
Revision 1.13: download - view: text, annotated - select for diffs
Fri Oct 22 09:52:22 2010 UTC (10 years, 11 months ago) by asau
Branches: MAIN
CVS tags: HEAD
Break paragraphs in another way.

    1: # Google Code-In (GCI) project ideas
    2: 
    3: <http://code.google.com/opensource/gci/2010-11/index.html>
    4: 
    5: ## Goals as stated by Google
    6: 1. Code: Tasks related to writing or refactoring code
    7: 1. Documentation: Tasks related to creating/editing documents
    8: 1. Outreach: Tasks related to community management and outreach/marketing
    9: 1. Quality Assurance: Tasks related to testing and ensuring code is of high quality
   10: 1. Research: Tasks related to studying a problem and recommending solutions
   11: 1. Training: Tasks related to helping others learn more
   12: 1. Translation: Tasks related to localization
   13: 1. User Interface: Tasks related to user experience research or user interface design and interaction
   14: 
   15: ## Proposed areas
   16: ### Desktop project (QA, UI, Doc)
   17: 
   18: Try out various desktop scenarios: KDE, GNOME, XFCE.
   19: 
   20: Install software, configure, document, tune.
   21: 
   22: Make it good-looking, I mean _really_ good-looking.
   23: 
   24: Describe problems you meet, sort them out (file problem reports as necessary).
   25: 
   26: ### Document time and calendar formats and functions and their relations (Doc, QA)
   27: 
   28: We have "time_t", "struct timespec", "struct timeval", "struct tm", and so on.
   29: 
   30: Document all of them as time(5) so that one could have overview of those.
   31: 
   32: We have time zone sensitive and time zone independent representations too,
   33: figuring out conversions between local time and UTC from manual pages is hard.
   34: This is to be addressed too.
   35: 
   36: This requires some programming skills, some knowledge of C in particular.
   37: 
   38: ### Embedded project (Doc, Research)
   39: 
   40: Describe and document some embedded usage,
   41: e.g. making NetBSD run on machine without:
   42: 
   43: * keyboard and video ports
   44: * above and serial port
   45: 
   46: #### Possible embedded usage
   47: 
   48: * Thin client: rdesktop or vnc to hardcoded server
   49: * Home or SOHO router (wireless access point)
   50: * Home or SOHO file storage
   51: * Home or SOHO print server
   52: 
   53: It is preferred if NetBSD installation uses the least possible resources.
   54: (E.g. try making it boot over network, or consider that it is to be made so in future.)
   55: 
   56: #### More notes on embedded systems
   57: ##### File server
   58: It should present HTTP(S), FTP(S), and SMB access to data (must),
   59: consider other access methods (SFTP, NFS, AFS/CODA, AppleTalk).
   60: 
   61: It should implement web interface.
   62: 
   63: Bonus points if you make it work like Apple Time Capsule (already running NetBSD) or better,
   64: e.g. implement periodic file system snapshots, 
   65: 
   66: ##### Router
   67: 
   68: Take any SOHO router as example.
   69: 
   70: Adapt pfSense? Similar software?
   71: 
   72: ### Unattended installation (Research, Doc, Code)
   73: 
   74: Consider installation recovery scenario from bare system to configured server.
   75: 
   76: ### Live USB Flash image (Doc, Outreach, Code)
   77: 
   78: Perform and document how one does it.
   79: 
   80: Script it if possible.
   81: 
   82: Script cross-buildin if possible.
   83: 
   84: Consider thin client.
   85: 
   86: ### Installation tools (QA, Research, Doc, Code)
   87: 
   88: Try creating bootable media using fdisk, disklabel, installboot.
   89: Decribe experience, propose improvements, implement them.
   90: 
   91: Build NetBSD on any other OS at your choice: FreeBSD, Linux, NT, or OSX.
   92: 
   93: Try creating bootable media using tools built on another OS.
   94: Decribe experience, propose improvements, implement them.
   95: 
   96: Tools affected
   97:  
   98: * fdisk
   99: * disklabel
  100: * installboot
  101: * perhaps others
  102: 
  103: For hardcore hackers (those wishing to learn how the stuff works).
  104: 
  105: ### System Library project (Code, Doc, QA, Research)
  106: 
  107: Add a function call to a system library.
  108: The function call does not need to be immediately useful (ideally we should provide several
  109: suggestions) and in fact should not be very complex as the project contains the following
  110: tasks with varying skills
  111: 
  112: * produce C code of function
  113: * bump library minor version
  114: * write nroff manpage
  115: * handle Makefile changes
  116: * handle set list changes
  117: * write ATF testcase
  118: 
  119: ### Tests projects (Code, QA)
  120: 
  121: Create ATF tests for a section of library routines, such as (please add.. )
  122: 
  123: * string(3)
  124: * bluetooth(3)
  125: * sdp_data(3)
  126: 
  127: ### PR projects (Code, Research)
  128: 
  129: Create a fix for PR#...
  130: 
  131: (please list any PRs that you think are easily fixable but just require a bit
  132: of time that you don't have)
  133: 

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb