Changes between Version 70 and Version 71 of DevProjects


Ignore:
Timestamp:
Oct 11, 2011, 11:23:01 PM (13 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DevProjects

    v70 v71  
    11[[PageOutline]]
     2
    23= Help wanted - programming =
    3 
    4 BOINC needs volunteers to help with software development.
    5 BOINC consists of several areas, each with some required technical skills:
     4BOINC needs volunteers to help with software development. BOINC consists of several areas, each with some required technical skills:
    65
    76|| '''Area''' || '''Skills needed''' ||
     
    1211|| Unix build system || autoconf, automake ||
    1312
    14 The University of California holds the copyright on all BOINC source code.
    15 By submitting contributions to the BOINC code, you irrevocably assign all right, title, and interest,
    16 including copyright and all copyright rights, in such contributions to The Regents of the University of California,
    17 who may then use the code for any purpose that it desires.
     13The University of California holds the copyright on all BOINC source code. By submitting contributions to the BOINC code, you irrevocably assign all right, title, and interest, including copyright and all copyright rights, in such contributions to The Regents of the University of California, who may then use the code for any purpose that it desires.
    1814
    1915== Finding tasks ==
    20 
    2116There are several ways to get tasks to work on:
    2217
     
    2520 * Scan the [//dev/ BOINC message boards] for ideas.
    2621
    27 == Coordinating your work ==
    28 
     22== Coordinating and submitting your work ==
    2923Once you pick out a task:
    3024
    3125 * Look at the source code and think about how you would implement the task.
    32  * Read about the BOINC [SoftwareDevelopment software] and [DevProcess development process].
    33  * Communicate with the [ProjectPeople area owner] or [ProjectPeople David Anderson], and reach agreement on exactly what you're going to do and how. Don't start coding until you do this.
     26 * Read about the BOINC [wiki:SoftwareDevelopment software] and [wiki:DevProcess development process].
     27 * Communicate with the [wiki:ProjectPeople area owner] or [wiki:ProjectPeople David Anderson], and reach agreement on exactly what you're going to do and how. Don't start coding until you do this.
    3428
    35 
    36 == Submitting your work ==
    37 
    38  * Submit your work (as diffs or files) to the area owner, so that they can evaluate it and possibly check it in.
    39  * If you are working on a large task and want to stay current with the trunk, ask us to create an SVN workspace for you.
    40  * Once you've contributed a certain amount of work, we'll give you SVN write access.
     29Submit your work (as diffs or files) to the area owner, so that they can evaluate it and possibly check it in.
    4130
    4231== Proposed features ==
    43 
    44 The following development projects are available
    45 '''(Note: please do not add items to these lists.
    46 Suggest new items in the boinc_dev email list.)'''
     32The following development projects are available '''(Note: please do not add items to these lists. Suggest new items in the boinc_dev email list.)''''''''
    4733
    4834=== Web features ===
     35Easy:
    4936
    50 Easy:
    5137 * Add a Reset button to prefs (both general and project)
    52  * Change whole-page caching to data caching to eliminate problem with wrong translations. #598
    53  * Change update_profile_pages.php (and others) to use single join queries instead of lots of secondary select queries. #599
    54  * Convert all PHP code to use [PhpDb the new database abstraction layer]. #600
     38 * Use a WYSIWYG bbcode editor such as http://wysiwygbbcode.codeplex.com/releases/view/49836
     39 * Document the classes and IDs used by the PHP code; document the "standard" stylesheets, main.css and white.css. Finish black.css, and maybe make another style.
    5540 * Combine user page and profile. #601
    5641 * Change default Q&A page to refer BOINC-specific questions to BOINC web site. #603
     
    5944
    6045Medium:
     46
    6147 * Add a mechanism where joining a team or group requires approval of an admin. #605
    62  * Groups (sub-teams).  New DB table with name, description, team ID, flags, forum ID. Group membership table. #606
    6348
    6449Difficult and/or complex:
     50
    6551 * Repackage the BOINC web code (PHP) as a Drupal module.  Being worked on by Einstein@home.
    66  * Unify preferences (i.e., have the same prefs available on the web as in the Manager, and if possible make the interface look the same). #607
    67  * Preferences: add a simplified interface where there are discrete choices (this applies to both web and GUI):
    68   * Standard
    69   * Max work
    70   * Min interference
    71   * Green
    72  * Preferences: Currently there are time of day/week controls for gross features - whether to compute, whether to communicate.
    73  Extend this so that all relevant preferences can be controlled by time of day/week, and whether computer is in use.
    74  
     52 * [PrefsRemodel Remodel the preferences system]
    7553 * Propagate profiles between projects. #608
    7654 * Same for forum preferences.
    7755 * Add new profile features: #609
    78   * list of recent posts and threads this person created, on this and other projects.
    79   * other features from social networking sites?
    80   * Add ‘referral’ mechanism: new user creates account, enters email of ‘referrer’ (or goes to URL that has it embedded). Give referrer a fraction of credit (or a 1-time bonus). List referrals on user page (show only those still active). Add new referral table to DB.
     56   * list of recent posts and threads this person created, on this and other projects.
     57   * other features from social networking sites?
     58   * Add ‘referral’ mechanism: new user creates account, enters email of ‘referrer’ (or goes to URL that has it embedded). Give referrer a fraction of credit (or a 1-time bonus). List referrals on user page (show only those still active). Add new referral table to DB.
    8159 * Make it easy for teams to offer a client download that features their skin, and pre-register the user on that team for any projects he attaches to. #610
    82 
    8360
    8461=== Applications ===
    8562Easy:
     63
    8664 * Create Makefiles and project files to build the sample applications using MinGW and Dev-C++.
     65
    8766Medium:
     67
    8868 * Write example FORTRAN application and Makefiles/ project files.
     69
    8970Difficult and/or complex:
     71
    9072 * Write an example compound application (and suggest API revisions to make this easier).
    9173 * Investigate the crlibm library for generating identical results across processors (or at least reducing the number of cases for HR).
     
    9476
    9577=== Client ===
     78Medium:
    9679
    97 Medium:
    98  * Keep track of the statistics of how long it takes to upload files,
    99   and to report results.
    100   Use that info to improve compute deadlines
    101   (e.g., subtract the 2 sigma point for both).
     80 * Keep track of the statistics of how long it takes to upload files, and to report results. Use that info to improve compute deadlines (e.g., subtract the 2 sigma point for both).
    10281 * Add an "expiration delay" for files: delete them only after they haven't been used for X time.
    10382 * Core client monitors total CPU usage, limits its own CPU usage so that total is < 100%.
     
    10786
    10887Hard:
     88
    10989 * Have the core client sense CPU temperature and throttle CPU if it goes too high. [http://www.lm-sensors.org/ Open-source software for collecting sensor data (on Linux)] is available.
    11090 * Windows: get proxy config info directly from the OS.
     
    11595 * Log result start/ends (for use by 3rd-party software like !BoincView).
    11696 * Prevent disk space usage from exceeding user preferences, and enforce resource shares, with file deletion according to project policy.
    117  * Vista: if get 'about to shut down' msg from OS, stop apps immediately (don't tell them to checkpoint). Investigate. 
     97 * Vista: if get 'about to shut down' msg from OS, stop apps immediately (don't tell them to checkpoint). Investigate.
    11898
    11999=== Installer ===
    120100 * Check if host is configured to go into Standby mode after X idle minutes.  If so, ask user if they want to let BOINC run for X minutes, then go into standby right after that.
    121101
    122 ===  BOINC Manager ===
     102=== BOINC Manager ===
     103Easy:
    123104
    124 Easy:
    125105 * Show credit numbers (especially totals) with thousands-groups separators (e.g., commas)
    126106 * If using an AMS, put link to AMS (or user page) in sys tray popup, elsewhere.
    127107
    128108Hard:
     109
    129110 * Reimplement the BOINC Manager so that it is:
    130   * Configurable via an XML file
    131   * Skinnable via CSS
    132   * nicer-looking than the WxWidgets version
     111   * Configurable via an XML file
     112   * Skinnable via CSS
     113   * nicer-looking than the WxWidgets version
    133114
    134115=== Server and Back End ===
     116Easy:
    135117
    136 Easy:
    137118 * Add a mechanism to recover from situations where the scheduler fails to send its reply message.
    138   * Add a reply_pending field to host table.  Set at start of scheduler, clear after reply message sent.
    139   * If get a request from host with reply_pending==1, scan for lost results
    140  This would replace the <resend_lost_results> mechanism.
    141  NOTE: this is not a good design; successful send doesn't imply successful receipt.
     119   * Add a reply_pending field to host table.  Set at start of scheduler, clear after reply message sent.
     120   * If get a request from host with reply_pending==1, scan for lost results This would replace the <resend_lost_results> mechanism. NOTE: this is not a good design; successful send doesn't imply successful receipt.
    142121 * XML stats: add lat/long to user record?
    143122
    144123Medium:
    145  * Enforce file immutability.  I.e., have create_work() check if any file is already in the download hierarchy,
    146   and if so make sure that it is the same.  Use MD5s for efficiency.
    147  * When using HR, if the scheduler has sent one result of a WU using a particular app version,
    148   it should use the same app version for other results from that WU.
    149   Otherwise, when new app versions are released, results may incorrectly be marked as invalid.
    150   NOTE: not really needed; create a new app instead.
     124
     125 * Enforce file immutability.  I.e., have create_work() check if any file is already in the download hierarchy, and if so make sure that it is the same.  Use MD5s for efficiency.
     126 * When using HR, if the scheduler has sent one result of a WU using a particular app version, it should use the same app version for other results from that WU. Otherwise, when new app versions are released, results may incorrectly be marked as invalid. NOTE: not really needed; create a new app instead.
    151127
    152128Hard:
    153  * Add support for MPI-type applications: try to schedule all the jobs in a batch more or less simultaneously.
    154    NOTE: being done by Volpex project from U. of Houston.
     129
     130 * Add support for MPI-type applications: try to schedule all the jobs in a batch more or less simultaneously. NOTE: being done by Volpex project from U. of Houston.
    155131 * Implement a mechanism so that server software detects incompatible database format. (related to #715)
    156  * Add project_specific_info field to host table (text).  This stores, for each app, the ID of last reference WU completed, and the info returned by that WU (as part of its stderr output, in a <app_info> tag).
    157  ?? how to select an app version based on contents of app_info?
    158   This could be used, e.g., to do app-specific benchmarking,
    159   to gather info on the host hardware or software configuration,
    160   or to periodically check the numerical hardware.
     132 * Add project_specific_info field to host table (text).  This stores, for each app, the ID of last reference WU completed, and the info returned by that WU (as part of its stderr output, in a <app_info> tag). ?? how to select an app version based on contents of app_info? This could be used, e.g., to do app-specific benchmarking, to gather info on the host hardware or software configuration, or to periodically check the numerical hardware.