Diff for /wikisrc/projects/code-in.mdwn between versions 1.35 and 1.36

version 1.35, 2012/10/22 11:01:14 version 1.36, 2012/10/26 19:57:32
Line 207  For all the tasks involving prerequisite Line 207  For all the tasks involving prerequisite
   *Tag*: howto      *Tag*: howto  
   *Tag*: service    *Tag*: service
   * **Task: Describe what a NetBSD installation does**: NetBSD has an installer called sysinst. But for several cases installations are not run from a system with a direct interface, but rather something else where you don't have sysinst available. Imagine an installation in a chroot environment, an automated installation, with another interface (e.g. ssh), etc.  
     For all these issues, it is necessary to know what a NetBSD installation exactly does. You have to look at the code of sysinst and document what it does in which step, and what is necessary to get a system running.  
     *Prerequisite*: C (reading)  
     *Tag*: howto  
     *Tag*: system  
   * **Task: Describe usage of Multicast DNS in NetBSD**: We have the "Multicast and Unicast DNS daemon" (mdnsd(8)) in NetBSD, which can also be activated directly from the installer (which is one of a few chosen services).  
     To be really able to use it, you have to know what it is and what you can do with it.  
     So, your task is to research what Multicast DNS (or zeroconf) is, and document which of the features is already usable with NetBSD and which ones can be installed via pkgsrc, which ones are completely missing (but relevant).  
     The mdnsd(8) manpage and the Wikipedia page for zeroconf might be a good start for this.  
     *Tag*: howto  
     *Tag*: system  
     *Tag*: service  
     *Tag*: reserach
 ### Outreach/Research  ### Outreach/Research
Line 320  For all the tasks involving prerequisite Line 335  For all the tasks involving prerequisite
   *Tag*: research      *Tag*: research  
   *Tag*: man    *Tag*: man
   * **Task: Create lists of software needed for a desktop system**: NetBSD itself is a very puristic operating system. It doesn't deliver much in its base except for the things really needed.  
     As such, it does not provide software you would usually install on your desktop system like a graphical editor, Firefox, etc.  
     In this task, you have to create a list of applications that are needed (only abstract, like "chatting"), and then propose a list of current software used for that and which one you would provide to a user.  
     The goal is to create a list of the applications, and a list of pros and cons of the single packages and why you would recommend them (or not).  
     *Tag*: ui  
     *Tag*: research  
     *Tag*: service
   * **Task: Survey documentation structure of other projects**: There are many open source projects which exist not only for years, but also for decades (which e.g. NetBSD also nearly does with 19 years). For all of them, documentation is an important issue, and most, if not all projects have not mastered writing documentation.  
     In this task, you have to choose on of the projects listed below. If you want to research another project not listed, please ask a judge about it.  
     Then, you have to research the documentation of these projects (what sources are there, how are they used, which software do they use, which formatting language, etc. (what sources are there, how are they used, which software do they use, which formatting language, etc.), plus finding a way of determining the project's opinion of their documentation (a docs@ mailinglist might be a good start, like e.g. NetBSD-docs@NetBSD.org is). All in all, you should do nearly the same as the task "Create an overview of NetBSD documentation", except that you don't have to be that much in depth, but you should also research the technical and administrational background.  
     In the end, you should write a paper with the results of the survey and a small text, at least one page at all.  
     This task can be fulfilled multiple times, once for each project.  
     *Projects*: Debian, FreeBSD, OpenBSD, DragonFly, Gentoo, Arch Linux, Slackware, PostgreSQL  
     *Tag*: research  
     *Tag*: comparison  
     *Tag*: overview
   * **Task: Analyze and document (pseudo-)random number generators**: For several purposes like key creation, initial vectors for some protocols, IP sequence numbers, an operating system is required to have a (pseudo) random number generator ((p)rng).  
     Though some are implemented in hardware and the OS gives you the chance to interface them, you most probably just call the function random(3) or open the device /dev/urandom or /dev/random, which is either in hardware or software, depending on what the operating system uses.  
     While the hardware rngs use some random noise as a source for entropy ("randomness"), software rngs use several sources like disk command execution times, network timing, mouse and keyboard usage, depending on the implementation.  
     Your task is to look at the prngs of the great Open Source operating systems, analyze how they work, what input they use, how large their pools are and what exactly is done when input or output occurs.  
     This task is once for each operating system which has a different rng (some operating systems share the same ones), but you should analyze the input sources for all OSes using that rng and do the analysis for NetBSD first.  
     You should write down your result in a paper at least two pages long.  
     While this task might take up more work than a usual task, it is a very interesting and demanding task especially if you are interested in mathematics or cryptography.  
     *Tag*: research  
     *Tag*: comparison
 ### Quality Assurance  ### Quality Assurance
Line 386  For all the tasks involving prerequisite Line 429  For all the tasks involving prerequisite
   *Prerequisite*: C (reading)      *Prerequisite*: C (reading)  
   *Tag*: research    *Tag*: research
   * **Task: Measure startup time**: NetBSD doesn't have many services enabled by default, though most people add some more services they need for a system (depending on the usage).  
     Your task is about researching some of the most used services and the daemons that are inside NetBSD already, and measure the startup time depending on which and how many services are enabled.  
     You should write your results either in tabular form or in a paper at least two pages long, then also concluding your results.  
     *Tag*: system  
     *Tag*: service
   * **Task: Try out VoIP software**: There is much VoIP (i.e. SIP or Jingle/XMPP) software in pkgsrc, but which one works best vor NetBSD, which one provides the best features?  
     Create a comprehensive list of those, and report what does and what does not work with them.  
     *Tag*: service  
     *Tag*: ui
   * **Task: Try out XMPP software**: XMPP is a protocol for exchanging XML structures. Mostly it is used for the well-known chat protocol Jabber (like e.g. Google Talk and Facebook use).  
     There is much software providing XMPP access. You should research all those, look which ones are already in pkgsrc, which ones should be.  
     Then, you should install them and try them out and document if something is not working.  
     *Tag*: service  
     *Tag*: ui
 ### Code  ### Code
Line 482  For all the tasks involving prerequisite Line 542  For all the tasks involving prerequisite
   *Prerequisite*: C      *Prerequisite*: C  
   *Tag*: system    *Tag*: system
   * **Task: Write a mail wrapper**: NetBSD, as almost all Unixes, brings a mailserver (Postfix) along with its standard system.  
     This mailserver is enabled by default to let outgoing mails through, but most mailservers won't accept mails from dial-up networks. So the most common way is to use another mailserver with your common mail account to relay mails.  
     Your task is to write a small wrapper that does the authentication needed for most SMTP relays, such that a user only has to insert his account details for e.g. Gmail and then can relay the system mails there.  
     You should also take into account relaying the system user's mails to that account or document how you would do so. This would entail (though this is not part of this task) having a configuration for several users, such that they can setup this for themselves without others seeing their password.  
     This task doesn't have to be necessarily code, a comprehensive guide on how to do this by hand would also be sufficient (but not obsoleting the coding task).
     *Prerequisite*: sh SMTP  
     *Tag*: system  
     *Tag*: network  
     *Tag*: service  
     *Tag*: howto
 ### User Interface  ### User Interface

Removed from v.1.35  
changed lines
  Added in v.1.36

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