diff --git a/checkin_notes b/checkin_notes index 2443eb4bf4..33fe754e22 100755 --- a/checkin_notes +++ b/checkin_notes @@ -12155,3 +12155,10 @@ Matt 26 Sept 2005 html/ inc/ cache.inc + +David 26 Sept 2005 + - Restored the profile screening code, enabled by a + flag in config.xml + + html/inc + profile.inc diff --git a/doc/boinc_news.inc b/doc/boinc_news.inc index e248d1f805..cc02d55612 100644 --- a/doc/boinc_news.inc +++ b/doc/boinc_news.inc @@ -2,6 +2,15 @@ $project_news = array( +array("September 25, 2005", + "Rosetta@home, + a BOINC-based project at the University of Washington, + has launched and is seeking participants. + Its goal is \"... to develop methods that accurately + predict and design protein structures + and complexes, an endeavor that may ultimately help researchers + develop cures for human diseases.\"" +), array("September 23, 2005", "High-Performance Task Distribution for Volunteer Computing, a paper about BOINC server performance, will appear in the e-Science 2005 conference in December." diff --git a/doc/configuration.php b/doc/configuration.php index 495e4cb4ae..57f2916b93 100644 --- a/doc/configuration.php +++ b/doc/configuration.php @@ -35,6 +35,7 @@ htmlspecialchars(" /path/to/directory [ ] + [ ] [ ] [ ] [ N ] @@ -129,6 +130,10 @@ list_item("sched_lockfile_dir", directory where scheduler lockfiles are stored. Must be writeable to the Apache user. "); +list_item("profile_screening", + "If present, don't show profile pictures until they've been + screened and approved by project admins." +); list_end(); echo " diff --git a/doc/gui_rpc.php b/doc/gui_rpc.php index 26830dbc62..d7258c4f53 100644 --- a/doc/gui_rpc.php +++ b/doc/gui_rpc.php @@ -76,7 +76,11 @@ list_item_func( " ); list_item_func( - "project_attach(char* url, char* account_id, bool use_cached_credentials)", + "project_attach( + char* url, + char* account_id, + bool use_cached_credentials +)", "Attach to the given project. Cached credentials are defined in the project_init.xml file." ); @@ -130,7 +134,12 @@ list_item_func( " ); list_item_func( - "acct_mgr_rpc(const char* url, const char* name, const char* passwd, bool use_cached_credentials)", + "acct_mgr_rpc( + const char* url, + const char* name, + const char* passwd, + bool use_cached_credentials +)", "Do an Account Manager RPC to the given URL, passing the given name/password. If use_cached_credentials is true, then the existing url, username, diff --git a/doc/papers.php b/doc/papers.php new file mode 100644 index 0000000000..4aaeaebf07 --- /dev/null +++ b/doc/papers.php @@ -0,0 +1,60 @@ +High-Performance Task Distribution for Volunteer Computing +
+David P. Anderson, Eric Korpela, Rom Walton +
To appear in First IEEE International Conference on e-Science and Grid Technologies +
5-8 December 2005, Melbourne +
+Homogeneous Redundancy: a Technique to Ensure Integrity of Molecular Simulation Results Using Public Computing +
+M. Taufer, D. Anderson, P. Cicotti, C.L. Brooks III. +
from 19th IEEE International Parallel and Distributed Processing Symposium (IPDPS'05) Heterogeneous Computing Workshop. +
+April 4 2005, Denver CO. +
+ +Developing Distributed Computing Solutions Combining Grid Computing and +Public Computing. +
Jakob Gregor Pedersen & Christian Ulrik Søttrup. +
Master's thesis from University of Copenhagen. +
March 2005. + +

+Describes tools for transparently moving jobs between Condor and BOINC. +


+ +BOINC: A System for Public-Resource Computing and Storage +
David P. Anderson. +
5th IEEE/ACM International Workshop on Grid Computing, +
November 8, 2004, Pittsburgh, USA. +

+A more technical paper. +Also available in +

+
+

+Public Computing: Reconnecting People to Science +
David P. Anderson. +
Conference on Shared Knowledge and the Web, +
Residencia de Estudiantes, Madrid, Spain, Nov. 17-19 2003. + +

+A paper about BOINC's goals. +Also available in +

+ + +"; +page_tail(); +?> diff --git a/html/inc/profile.inc b/html/inc/profile.inc index f7c342982a..2ce332e806 100644 --- a/html/inc/profile.inc +++ b/html/inc/profile.inc @@ -7,7 +7,6 @@ require_once("../inc/sanitize_html.inc"); require_once("../inc/cache.inc"); require_once("../inc/user.inc"); -// TODO: Determine if we can always assume these will be the same number. define('SMALL_IMG_WIDTH', 64); define('SMALL_IMG_HEIGHT', 64); @@ -19,6 +18,11 @@ define('MAX_DESC_LENGTH', 90); define('GALLERY_WIDTH', 7); define('GALLERY_HEIGHT', 4); +function profile_screening() { + $config = get_config(); + return parse_bool($config, "profile_screening"); +} + function profile_error_page($str) { page_head("Profile error"); echo "$str
\n"; @@ -124,20 +128,21 @@ function show_textarea($name, $text) { // user the verification status of their profile. // function offensive_profile_warning($verify_flag) { - return; if ($verify_flag == 0) { return " Your profile will be made visible to other people
as soon as it has been approved by the project.
This may take up to a few days.
-
"; + + "; } else if ($verify_flag == -1) { return " Your profile has been marked as unacceptable.
It is not visible to other people. Please change it.
-
"; + + "; } return ""; } @@ -146,6 +151,11 @@ function show_picture_option($profile) { row1("Picture"); + $warning = ""; + if (profile_screening()) { + $warning = offensive_profile_warning($profile->verification); + } + if ($profile->has_picture) { echo " @@ -153,7 +163,7 @@ function show_picture_option($profile) { userid . '.jpg' . "\">userid . '_sm.jpg' . "\"> -" . offensive_profile_warning($profile->verification) . "Your profile picture is shown at left. + $warning Your profile picture is shown at left.

To replace it, click the \"Browse\" button and select a JPEG or PNG file (50KB or less). @@ -167,8 +177,7 @@ check this box: rowify("
"); end_table(); echo ""; - } - else { + } else { rowify(" If you would like include a picture with your profile, click the \"Browse\" button and select a JPEG or PNG file. @@ -332,9 +341,13 @@ function getImages($fileName) { return array($image, $smallImage); } -function scale_image($image, $origWidth, $origHeight, $targetWidth, $targetHeight) { +function scale_image( + $image, $origWidth, $origHeight, $targetWidth, $targetHeight +) { - // If the image is already smaller than the target dimensions, just return it. + // If the image is already smaller than the target dimensions, + // just return it. + // if ($origWidth <= $targetWidth && $origHeight <= $targetHeight) { return $image; } @@ -349,17 +362,25 @@ function scale_image($image, $origWidth, $origHeight, $targetWidth, $targetHeigh $destHeight = $origHeight; } -$gd_info = gd_info(); -$newGD = (strstr($gd_info["GD Version"], "2.0")!=""); -if ($newGD) { - // If you are using a modern PHP/GD installation that does 'truecolor' images, this is what's needed. - $newImage = ImageCreateTrueColor($destWidth, $destHeight); - ImageCopyResampled($newImage, $image, 0, 0, 0, 0, $destWidth, $destHeight, $origWidth, $origHeight); -} else { - // If not, use this block. The image quality is lower but it works using older PHP/GD versions. - $newImage = ImageCreate($destWidth, $destHeight); - ImageCopyResized($newImage, $image, 0, 0, 0, 0, $destWidth, $destHeight, $origWidth, $origHeight); -} + $gd_info = gd_info(); + $newGD = (strstr($gd_info["GD Version"], "2.0")!=""); + if ($newGD) { + // If you are using a modern PHP/GD installation that does + // 'truecolor' images, this is what's needed. + $newImage = ImageCreateTrueColor($destWidth, $destHeight); + ImageCopyResampled( + $newImage, $image, 0, 0, 0, 0, $destWidth, + $destHeight, $origWidth, $origHeight + ); + } else { + // If not, use this block. + // The image quality is lower but it works using older PHP/GD versions. + $newImage = ImageCreate($destWidth, $destHeight); + ImageCopyResized( + $newImage, $image, 0, 0, 0, 0, $destWidth, $destHeight, + $origWidth, $origHeight + ); + } return $newImage; } @@ -408,9 +429,11 @@ function show_user_table($members, $offset, $numToDisplay, $cols) { echo "

"; - // Only link an image if the user has uploaded one.; - //if ($profile->has_picture && $profile->verification==1) { - if ($profile->has_picture) { + $show_picture = $profile->has_picture; + if (profile_screening() && $profile->verification != 1) { + $show_picture = false; + } + if ($show_picture) { echo ""; } else { @@ -430,8 +453,10 @@ function show_user_table($members, $offset, $numToDisplay, $cols) { } // Generates a string containing: -// 1) the name of the user with ID == $userid, with a link to a view of their profile -// 2) the first MAX_DESC_LENGTH characters from the response1 field of said user's profile. +// 1) the name of the user with ID == $userid, +// with a link to a view of their profile +// 2) the first MAX_DESC_LENGTH characters from the response1 field +// of said user's profile. function get_profile_summary($profile) { $user = get_user_from_id($profile->userid); @@ -486,13 +511,15 @@ function show_profile($userid, $verify_mode = FALSE) { } - // Show picture only if there is a picture AND - // - sysadmin is verifying it - // - user is viewing/editing it - // - profile has been approved by sysadmin + // If doing screening, only show picture in certain situations // - //if ($profile->has_picture && ($verify_mode || $can_edit || $profile->verification==1)) { - if ($profile->has_picture) { + $show_picture = $profile->has_picture; + if (profile_screening()) { + if (!$verify_mode && !$can_edit && $profile->verification!=1) { + $show_picture = false; + } + } + if ($show_picture) { echo " id , '.jpg' . "\"> @@ -500,13 +527,13 @@ function show_profile($userid, $verify_mode = FALSE) { "; } - // If the user is viewing their own picture, display it's status if it's not + // If the user is viewing their own picture, display its status if it's not // yet verified. This will tell them if other users can't view it yet, or // if there is a problem with it and they need to replace it. // - //if ($can_edit && $profile->verification!=1) { - // row1(offensive_profile_warning($profile->verification)); - //} + if (profile_screening() && $can_edit && $profile->verification!=1) { + row1(offensive_profile_warning($profile->verification)); + } show_user_summary_public($user);