Annotation of wikisrc/projects/code-in.mdwn, revision 1.22

1.1       asau        1: # Google Code-In (GCI) project ideas
                      2: 
                      3: <http://code.google.com/opensource/gci/2010-11/index.html>
                      4: 
1.14      plunky      5: Google ran a similar event a couple of years ago, see <http://code.google.com/opensource/ghop/2007-8/> for details and perhaps snitch some ideas from there?
                      6: 
1.1       asau        7: ## Goals as stated by Google
                      8: 1. Code: Tasks related to writing or refactoring code
                      9: 1. Documentation: Tasks related to creating/editing documents
                     10: 1. Outreach: Tasks related to community management and outreach/marketing
                     11: 1. Quality Assurance: Tasks related to testing and ensuring code is of high quality
                     12: 1. Research: Tasks related to studying a problem and recommending solutions
                     13: 1. Training: Tasks related to helping others learn more
                     14: 1. Translation: Tasks related to localization
                     15: 1. User Interface: Tasks related to user experience research or user interface design and interaction
                     16: 
                     17: ## Proposed areas
                     18: ### Desktop project (QA, UI, Doc)
                     19: 
1.21      asau       20: #### Generic desktop
                     21: 
1.1       asau       22: Try out various desktop scenarios: KDE, GNOME, XFCE.
1.2       asau       23: 
1.1       asau       24: Install software, configure, document, tune.
1.2       asau       25: 
1.1       asau       26: Make it good-looking, I mean _really_ good-looking.
1.2       asau       27: 
1.1       asau       28: Describe problems you meet, sort them out (file problem reports as necessary).
                     29: 
1.21      asau       30: #### Home theater (QA, Doc)
                     31: 
                     32: Try simulating music player and/or video player.
                     33: 
                     34: See also in embedded projects.
                     35: 
1.1       asau       36: ### Document time and calendar formats and functions and their relations (Doc, QA)
                     37: 
                     38: We have "time_t", "struct timespec", "struct timeval", "struct tm", and so on.
1.5       asau       39: 
1.1       asau       40: Document all of them as time(5) so that one could have overview of those.
                     41: 
1.5       asau       42: We have time zone sensitive and time zone independent representations too,
                     43: figuring out conversions between local time and UTC from manual pages is hard.
                     44: This is to be addressed too.
                     45: 
1.1       asau       46: This requires some programming skills, some knowledge of C in particular.
                     47: 
                     48: ### Embedded project (Doc, Research)
                     49: 
                     50: Describe and document some embedded usage,
                     51: e.g. making NetBSD run on machine without:
1.2       asau       52: 
1.1       asau       53: * keyboard and video ports
                     54: * above and serial port
                     55: 
1.4       asau       56: #### Possible embedded usage
1.1       asau       57: 
1.4       asau       58: * Thin client: rdesktop or vnc to hardcoded server
                     59: * Home or SOHO router (wireless access point)
                     60: * Home or SOHO file storage
                     61: * Home or SOHO print server
                     62: 
                     63: It is preferred if NetBSD installation uses the least possible resources.
                     64: (E.g. try making it boot over network, or consider that it is to be made so in future.)
                     65: 
1.6       asau       66: #### More notes on embedded systems
1.17      asau       67: 
                     68: ##### Router
                     69: 
                     70: Take any SOHO router as example.
                     71: 
                     72: Adapt pfSense? Similar software?
                     73: 
1.21      asau       74: ##### Home theater
                     75: 
                     76: Create music and/or video player. Perhaps desktop.
                     77: 
1.18      asau       78: ### Thin client / Kiosk
                     79: 
                     80: Build thin client.
                     81: 
                     82: * install and configure graphical system (X server)
                     83: * make your NetBSD autologin and launch some application (imagine a kind of kiosk or game console)
                     84: * make your NetBSD ask login in graphical mode
                     85: * make your NetBSD autologin and launch graphical application
                     86: * configure and install VNC server
                     87: * make your NetBSD connect to VNC server
                     88: * configure and install RDP server
                     89: * make your NetBSD connect to RDP server
                     90: * boot your client over network
1.19      asau       91: * make your client boot from CD or USB Flash, or CF card
1.18      asau       92: 
                     93: It is preferred if NetBSD installation uses the least possible resources.
                     94: 
1.17      asau       95: ### File server
1.16      asau       96: Build personal file server.
1.6       asau       97: 
1.16      asau       98: Ideally, it should present HTTP(S), FTP(S), and SMB access to data.
                     99: Consider other access methods (SFTP, NFS, AFS/CODA, AppleTalk).
                    100: 
                    101: Ideally, it should implement web interface.
1.6       asau      102: 
                    103: Bonus points if you make it work like Apple Time Capsule (already running NetBSD) or better,
                    104: e.g. implement periodic file system snapshots, 
                    105: 
1.16      asau      106: Separate tasks:
                    107: 
                    108: * provide access to your files via HTTP
                    109: * provide access to your files via FTP
                    110: * provide access to your files via SMB
                    111: * provide access to your files via NFS
                    112: * provide access to your files via SFTP
                    113: * create periodic file system snapshots on your NetBSD
                    114: * learn how to perform automatic periodic tasks
                    115: * make your NetBSD perform periodic file system snapshots
1.17      asau      116: * try doing anything/everything above on headless system
                    117: * try automatising anything/everything above
1.6       asau      118: 
1.15      asau      119: ### Backup and Recovery (Research, Doc, QA, Code)
                    120: 
                    121: #### Incremental backup scenario
                    122: 
                    123: Document it. Try different plans.
                    124: 
                    125: #### Recovery from bare iron (QA, Doc, Code)
1.4       asau      126: 
                    127: Consider installation recovery scenario from bare system to configured server.
1.1       asau      128: 
1.15      asau      129: Try automatizing it.
                    130: 
                    131: #### Unattended installation (Research, Code)
                    132: 
                    133: Like above only using installation tools.
                    134: 
                    135: 
1.1       asau      136: ### Live USB Flash image (Doc, Outreach, Code)
                    137: 
                    138: Perform and document how one does it.
                    139: 
                    140: Script it if possible.
                    141: 
                    142: Script cross-buildin if possible.
                    143: 
1.7       asau      144: Consider thin client.
                    145: 
1.11      asau      146: ### Installation tools (QA, Research, Doc, Code)
1.1       asau      147: 
1.11      asau      148: Try creating bootable media using fdisk, disklabel, installboot.
                    149: Decribe experience, propose improvements, implement them.
1.7       asau      150: 
1.11      asau      151: Build NetBSD on any other OS at your choice: FreeBSD, Linux, NT, or OSX.
1.12      asau      152: 
1.11      asau      153: Try creating bootable media using tools built on another OS.
                    154: Decribe experience, propose improvements, implement them.
                    155: 
                    156: Tools affected
                    157:  
                    158: * fdisk
                    159: * disklabel
                    160: * installboot
                    161: * perhaps others
                    162: 
                    163: For hardcore hackers (those wishing to learn how the stuff works).
1.8       plunky    164: 
1.21      asau      165: ### Audio/Video broadcasting (network radio/TV broadcasting)
                    166: 
                    167: Build audio and/or video broadcasting server.
                    168: 
                    169: ### Telephony
                    170: 
                    171: Become VoIP provider!
                    172: 
1.22    ! asau      173: ### Build system QA (QA, Code, Research)
        !           174: 
        !           175: Check all MK* variables, check how they affect builds,
        !           176: suggest improvements or removal.
        !           177: 
1.8       plunky    178: ### System Library project (Code, Doc, QA, Research)
                    179: 
                    180: Add a function call to a system library.
                    181: The function call does not need to be immediately useful (ideally we should provide several
                    182: suggestions) and in fact should not be very complex as the project contains the following
                    183: tasks with varying skills
                    184: 
                    185: * produce C code of function
                    186: * bump library minor version
                    187: * write nroff manpage
                    188: * handle Makefile changes
                    189: * handle set list changes
                    190: * write ATF testcase
1.9       plunky    191: 
                    192: ### Tests projects (Code, QA)
                    193: 
                    194: Create ATF tests for a section of library routines, such as (please add.. )
                    195: 
                    196: * string(3)
                    197: * bluetooth(3)
                    198: * sdp_data(3)
1.10      plunky    199: 
                    200: ### PR projects (Code, Research)
                    201: 
                    202: Create a fix for PR#...
                    203: 
                    204: (please list any PRs that you think are easily fixable but just require a bit
                    205: of time that you don't have)
                    206: 
1.20      asau      207: ### Documentation projects (Doc, Outreach)
                    208: 
                    209: #### Save all useful information from closed wiki.NetBSD.SE
                    210: 
                    211: Go over NetBSD.SE snapshot, check pages for valid and useful information,
                    212: move all relevant bits to to-be-official NetBSD wiki.

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