Changes between Version 38 and Version 39 of DevProjects


Ignore:
Timestamp:
Jan 7, 2008, 11:18:28 AM (16 years ago)
Author:
davea
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DevProjects

    v38 v39  
    2020 * Use CSS instead of HTML for formatting where possible; clean up white.css; improve the look; develop alternative looks (perhaps with the curiously popular rounded corners).
    2121 * Replace our own translation system with PHP's gettext()
     22 * Change update_profile_pages.php (and others) to use single join queries instead of lots of secondary select queries.
    2223 * Convert PHP code to use [PhpDb the new database abstraction layer].
    2324 * Combine user page and profile.
     
    2829
    2930Medium:
    30  * Notification mechanism:
    31   * The arrival of a private message, or a new post in a subscribed thread, maybe moderation events (and maybe other things we haven't thought of yet) produce "notification events".
    32   * Notification events are shown on the Your Account (and maybe on any page that requires login).
    33   * Notification events are exported as an RSS feed, so you can see them in an RSS reader.
    34   * The BOINC manager will (optionally) poll this RSS feed and show new items as alerts.
    35   * You can optionally ask for email notifications, either one email per event or a daily digest. This will be separate from the "accept email newsletters from project", which is currently overloaded with PM notification.
    3631 * Add a mechanism where joining a team or group requires approval of an admin.
    3732 * Groups (sub-teams).  New DB table with name, description, team ID, flags, forum ID. Group membership table.
    3833
    3934Difficult/Complex:
    40           * Propagate profiles between projects. When create or edit profile, if attached to other projects, show ‘propagate changes’ page, with checkboxes for other projects (must have same password on other projects). Add web RPCs for updating profile (args: user ID, profile, password hash). Implement this so that page doesn't block waiting for replies from RPCs.  NOTE: this may not be a good idea — spammers could exploit it.
    41           * Same for forum preferences.
    42           * Add new profile features:
    43                 * ‘Buddy lists’.
    44                 * list of recent posts and threads this person created, on this and other projects.
    45                 * other features from social networking sites?
    46           * 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.
    47           * 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.
     35 * Propagate profiles between projects. When create or edit profile, if attached to other projects, show ‘propagate changes’ page, with checkboxes for other projects (must have same password on other projects). Add web RPCs for updating profile (args: user ID, profile, password hash). Implement this so that page doesn't block waiting for replies from RPCs.  NOTE: this may not be a good idea — spammers could exploit it.
     36 * Same for forum preferences.
     37 * Add new profile features:
     38  * list of recent posts and threads this person created, on this and other projects.
     39  * other features from social networking sites?
     40  * 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.
     41 * 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.
    4842
    4943
    5044== Applications ==
    5145Easy:
    52           * Create Makefiles and project files to build the sample applications using MinGW and Dev-C++.
     46 * Create Makefiles and project files to build the sample applications using MinGW and Dev-C++.
    5347Medium:
    54           * Write example FORTRAN application and Makefiles/ project files.
     48 * Write example FORTRAN application and Makefiles/ project files.
    5549Difficult/Complex:
    56           * Write an example compound application (and suggest API revisions to make this easier).
    57           * Investigate the crlibm library for generating identical results across processors (or at least reducing the number of cases for HR).
    58           * Java support: core client checks for the existence of JVM, reports version to scheduler. Write Java wrapper (runs JVM, gives it jar files). Note: Sztaki has already done some part of this.
    59           * Same, .NET
    60           * Distributed Python: Borrow or invent a notation for master/slave execution in Python. Develop a system that implements this on BOINC, i.e., creates WUs and applications, and harvests the results.
     50 * Write an example compound application (and suggest API revisions to make this easier).
     51 * Investigate the crlibm library for generating identical results across processors (or at least reducing the number of cases for HR).
     52 * Java support: core client checks for the existence of JVM, reports version to scheduler. Write Java wrapper (runs JVM, gives it jar files). Note: Sztaki has already done some part of this.
     53 * Same, .NET
     54 * Distributed Python: Borrow or invent a notation for master/slave execution in Python. Develop a system that implements this on BOINC, i.e., creates WUs and applications, and harvests the results.  A design document is [PythonAppDev here].
    6155
    6256== Core client ==
     
    6458
    6559Medium:
    66           * Add a preferences for total download and upload in a month (many Australian ISPs have monthly limits), or per X hours of processing time (see email from Kevin Reed).
    67           * Don't enforce RAM limits unless free RAM is low
    68           * GUI RPC to tell apps to checkpoint and quit.
     60 * Add a preferences for total download and upload in a month (many Australian ISPs have monthly limits), or per X hours of processing time (see email from Kevin Reed).
     61 * Core client monitors total CPU usage, limits its own CPU usage so that total is < 100%.
     62 * Don't enforce RAM limits unless free RAM is low
     63 * GUI RPC to tell apps to checkpoint and quit.
    6964Hard:
    70           * 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.
    71           * Windows: get proxy config info directly from the OS.
    72           * After an applications exits or is killed (for whatever reason) make sure (after a few second delay) that its subprocesses are gone too. Don't restart the job until this happens. Unix: use process groups and killpg().
    73           * More generally: make a better state machine for shutting down apps: tell them to checkpoint, wait a little, tell them to quit, clean up straggler processes.
    74           * Same, but for suspend: if we tell a client to suspend and it's still using
    75             lots of CPU after a few seconds, abort it (or something).
    76           * Integrate !BitTorrent ([http://www.rasterbar.com/products/libtorrent/ libtorrent]?) with the core client (Janus Kristensen is working on this).
    77           * Do potentially slow RPCs and other tasks (such as computing disk usage) in a separate thread.
    78           * Log result start/ends (for use by 3rd-party software like !BoincView).
    79           * Prevent disk space usage from exceeding user preferences, and enforce resource shares, with file deletion according to project policy.
    80           * Make messages of class MSG_USER_ERROR translatable.
    81           * Vista: if get 'about to shut down' msg from OS, stop apps immediately (don't tell them to checkpoint). Investigate.
    82           * XML stats: add lat/long to user record?
     65 * 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.
     66 * Windows: get proxy config info directly from the OS.
     67 * After an applications exits or is killed (for whatever reason) make sure (after a few second delay) that its subprocesses are gone too. Don't restart the job until this happens. Unix: use process groups and killpg().
     68 * More generally: make a better state machine for shutting down apps: tell them to checkpoint, wait a little, tell them to quit, clean up straggler processes.
     69 * Same, but for suspend: if we tell a client to suspend and it's still using lots of CPU after a few seconds, abort it (or something).
     70 * Integrate !BitTorrent ([http://www.rasterbar.com/products/libtorrent/ libtorrent]?) with the core client (Janus Kristensen is working on this).
     71 * Do potentially slow RPCs and other tasks (such as computing disk usage) in a separate thread.
     72 * Log result start/ends (for use by 3rd-party software like !BoincView).
     73 * Prevent disk space usage from exceeding user preferences, and enforce resource shares, with file deletion according to project policy.
     74 * Make messages of class MSG_USER_ERROR translatable.
     75 * Vista: if get 'about to shut down' msg from OS, stop apps immediately (don't tell them to checkpoint). Investigate.
     76 * XML stats: add lat/long to user record?
    8377
    8478==  BOINC Manager ==
     
    8882 * If using an AMS, put link to AMS (or user page) in sys tray popup, elsewhere.
    8983Hard:
     84 * The BOINC manager optionally polls notification RSS feeds and shows new items as alerts.
    9085 * Properties pages for projects, jobs.
    9186 * Turn off alerts (Rom Walton is working on this).