These files aren't modified. Git claims otherwise.

Subversion was so much better then git.  I spend all my effing time dealing
with git's issues.  What a PITA.
This commit is contained in:
U-X1\korpela 2014-04-29 07:59:06 -07:00
parent c8ba190f66
commit c6995ce06b
52 changed files with 12700 additions and 134 deletions

View File

@ -404,6 +404,10 @@ void COPROC_ATI::correlate(
ati_gpus[i].description(buf, sizeof(buf));
if (in_vector(ati_gpus[i].device_num, ignore_devs)) {
ati_gpus[i].is_used = COPROC_IGNORED;
} else if (this->have_opencl && !ati_gpus[i].have_opencl) {
ati_gpus[i].is_used = COPROC_UNUSED;
} else if (this->have_cal && !ati_gpus[i].have_cal) {
ati_gpus[i].is_used = COPROC_UNUSED;
} else if (use_all || !ati_compare(ati_gpus[i], *this, true)) {
device_nums[count] = ati_gpus[i].device_num;
count++;

View File

@ -47,6 +47,36 @@ using std::string;
static void get_available_nvidia_ram(COPROC_NVIDIA &cc, vector<string>& warnings);
#ifndef _WIN32
static int nvidia_driver_version() {
int (*nvml_init)() = NULL;
int (*nvml_finish)() = NULL;
int (*nvml_driver)(char *f, unsigned int len) = NULL;
int dri_ver = 0;
void *handle = NULL;
char driver_string[81];
handle = dlopen("libnvidia-ml.so", RTLD_NOW);
if (!handle) goto end;
nvml_driver = (int(*)(char *, unsigned int)) dlsym(handle, "nvmlSystemGetDriverVersion");
nvml_init = (int(*)(void)) dlsym(handle, "nvmlInit");
nvml_finish = (int(*)(void)) dlsym(handle, "nvmlShutdown");
if (!nvml_driver || !nvml_init || !nvml_finish) goto end;
if (nvml_init()) goto end;
if (nvml_driver(driver_string, 80)) goto end;
dri_ver = (int) (100. * atof(driver_string));
end:
if (nvml_finish) nvml_finish();
if (handle) dlclose(handle);
return dri_ver;
}
#endif
// return 1/-1/0 if device 1 is more/less/same capable than device 2.
// factors (decreasing priority):
// - compute capability
@ -323,7 +353,7 @@ void COPROC_NVIDIA::get(
#elif defined(__APPLE__)
cc.display_driver_version = NSVersionOfRunTimeLibrary("cuda");
#else
cc.display_driver_version = 0;
cc.display_driver_version = nvidia_driver_version();
#endif
have_cuda = true;
cc.have_cuda = true;
@ -367,6 +397,10 @@ void COPROC_NVIDIA::correlate(
for (i=0; i<nvidia_gpus.size(); i++) {
if (in_vector(nvidia_gpus[i].device_num, ignore_devs)) {
nvidia_gpus[i].is_used = COPROC_IGNORED;
} else if (this->have_opencl && !nvidia_gpus[i].have_opencl) {
nvidia_gpus[i].is_used = COPROC_UNUSED;
} else if (this->have_cuda && !nvidia_gpus[i].have_cuda) {
nvidia_gpus[i].is_used = COPROC_UNUSED;
} else if (use_all || !nvidia_compare(nvidia_gpus[i], *this, true)) {
device_nums[count] = nvidia_gpus[i].device_num;
pci_infos[count] = nvidia_gpus[i].pci_info;

View File

@ -125,6 +125,27 @@ class BoincUser {
}
return self::$cache[$id];
}
static function lookup_auth($auth) {
$db = BoincDb::get();
$auth = BoincDb::escape_string($auth);
return self::lookup("authenticator='$auth'");
}
static function lookup_email_addr($email_addr) {
$db = BoincDb::get();
$email_addr = BoincDb::escape_string($email_addr);
return self::lookup("email_addr='$email_addr'");
}
static function lookup_name($name) {
$name = BoincDb::escape_string($name);
$users = BoincUser::enum("name='$name'");
switch (sizeof($users)) {
case 1:
return $users[0];
case 0:
return null;
}
return -1;
}
static function count($clause) {
$db = BoincDb::get();
return $db->count('user', $clause);

View File

@ -22,6 +22,9 @@ require_once('../inc/boinc_db.inc');
// database-related functions.
// Presentation code (HTML) shouldn't be here
// DEPRECATED; use boinc_db.inc instead.
// TODO: replace calls to these functions
function db_init_aux($try_replica=false) {
$config = get_config();
$user = parse_config($config, "<db_user>");
@ -58,34 +61,6 @@ function db_init_aux($try_replica=false) {
return 0;
}
function lookup_user_auth($auth) {
$auth = BoincDb::escape_string($auth);
return BoincUser::lookup("authenticator='$auth'");
}
function lookup_user_id($id) {
return BoincUser::lookup_id($id);
}
function lookup_user_email_addr($email_addr) {
$e = BoincDb::escape_string($email_addr);
return BoincUser::lookup("email_addr='$e'");
}
function lookup_user_name($name) {
// TODO: is the following double escaped? Why?
$name = BoincDb::escape_string($name);
$users = BoincUser::enum("name='".boinc_real_escape_string($name)."'");
if (sizeof($users)==1) {
return $users[0];
}
return null;
}
function lookup_host($id) {
return BoincHost::lookup_id($id);
}
function lookup_team($id) {
return BoincTeam::lookup_id($id);
}

View File

@ -704,7 +704,7 @@ function show_post_and_context($post, $thread, $forum, $options, $n) {
$content = output_transform($post->content, $options);
$when = time_diff_str($post->timestamp, time());
$user = lookup_user_id($post->user);
$user = BoincUser::lookup_id($post->user);
$title = cleanup_title($thread->title);
$m = $n%2;
if ($post->hidden) {

View File

@ -99,7 +99,7 @@ function show_host($host, $user, $ipprivate) {
if ($x >= 0) $x="+$x";
row2(tra("Local Standard Time"), tra("UTC %1 hours", $x));
} else {
$owner = lookup_user_id($host->userid);
$owner = BoincUser::lookup_id($host->userid);
if ($owner && $owner->show_hosts) {
row2(tra("Owner"), user_links($owner));
} else {

View File

@ -166,7 +166,7 @@ function scale_image(
// of said user's profile.
function get_profile_summary($profile) {
$user = get_user_from_id($profile->userid);
$user = BoincUser::lookup_id($profile->userid);
if (!$user || !$profile) {
error_page(tra("Database error"));

View File

@ -25,16 +25,20 @@ require_once("../inc/dir_hier.inc");
// Return path of sandbox directory for the given user.
// Create dir if not present.
//
if (!function_exists("sandbox_dir")){
function sandbox_dir($user) {
if (!is_dir("../../sandbox")) {
mkdir("../../sandbox");
$dir = parse_config(get_config(), "<sandbox_dir>");
if (!$dir) { $dir = "../../sandbox/"; }
if (!is_dir($dir)) {
mkdir($dir);
}
$d = "../../sandbox/$user->id";
$d = "$dir/$user->id";
if (!is_dir($d)) {
mkdir($d);
}
return $d;
}
}
function sandbox_write_link_file($path, $size, $md5) {
file_put_contents($path, "sb $size $md5");
@ -65,6 +69,7 @@ function sandbox_lf_exist($user, $md5) {
// parse a link file and return (error, size, md5)
//
function sandbox_parse_link_file($path) {
if (!file_exists($path)) { return array(true, null, null); }
$x = file_get_contents($path);
$n = sscanf($x, "%s %d %s", $s, $size, $md5);
if ($n != 3) return array(true, null, null);
@ -104,11 +109,17 @@ function sandbox_file_names($user) {
// return a <select> for files in sandbox
//
function sandbox_file_select($user, $select_name) {
function sandbox_file_select($user, $select_name, $regexp = null, $allow_none = false) {
if ($regexp === null) {
$regexp = $select_name;
}
$x = "<select name=$select_name>\n";
if ($allow_none) {
$x .= "<option value=\"\">--- None</option>\n";
}
$files = sandbox_file_names($user);
foreach ($files as $f) {
if(preg_match("/$select_name/",$f)){
if(preg_match("/$regexp/",$f)){
$x .= "<option value=\"$f\">$f</option>\n";
}
}

View File

@ -16,7 +16,7 @@
// You should have received a copy of the GNU Lesser General Public License
// along with BOINC. If not, see <http://www.gnu.org/licenses/>.
require_once('../inc/db.inc');
require_once('../inc/boinc_db.inc');
require_once('../inc/email.inc');
require_once('../inc/profile.inc');
@ -34,7 +34,7 @@ function uotd_thumbnail($profile, $user) {
// show UOTD in a small box
//
function show_uotd($profile) {
$user = lookup_user_id($profile->userid);
$user = BoincUser::lookup_id($profile->userid);
echo uotd_thumbnail($profile, $user);
echo user_links($user, true)."<br>";
$x = output_transform($profile->response1);
@ -61,7 +61,7 @@ function select_uotd() {
$assigned = getdate($current_uotd->uotd_time);
$now = getdate(time());
if ($assigned['mday'] == $now['mday']) {
$user = lookup_user_id($current_uotd->userid);
$user = BoincUser::lookup_id($current_uotd->userid);
echo "Already have UOTD for today\n";
generate_uotd_gadget($current_uotd, $user);
exit();
@ -107,7 +107,7 @@ function select_uotd() {
exit();
}
$profile = mysql_fetch_object($result);
$user = lookup_user_id($profile->userid);
$user = BoincUser::lookup_id($profile->userid);
// if profile is "orphaned", delete it and try again
//

View File

@ -96,11 +96,6 @@ function clear_cookie($name, $ops=false) {
setcookie($name, '', time()-3600, $path);
}
function get_user_from_id($id) {
if ($id) return lookup_user_id($id);
return NULL;
}
$g_logged_in_user = null;
$got_logged_in_user = false;

View File

@ -97,7 +97,7 @@ function get_data() {
$found_zero = false;
while ($result = mysql_fetch_object($r2)) {
if ($result->granted_credit==0) continue; // skip invalid
$host = lookup_host($result->hostid);
$host = BoincHost::lookup_id($result->hostid);
$r = new StdClass;
$r->cpu_time = $result->cpu_time;
$r->p_fpops = $host->p_fpops;

View File

@ -294,7 +294,7 @@ if (!$id) {
$id = post_int("userid", true);
}
if (!$id) error_page("No ID given");
$user = lookup_user_id($id);
$user = BoincUser::lookup_id($id);
if (!$user) error_page("No such user: $id");
BoincForumPrefs::lookup($user);

View File

@ -311,7 +311,7 @@ if (!$USE_PHPMAILER) {
$email_files = read_email_files();
if ($globals->userid) {
$user = lookup_user_id($globals->userid);
$user = BoincUser::lookup_id($globals->userid);
if (!$user) {
echo "no such user\n";
} else {

View File

@ -320,7 +320,7 @@ if (!$USE_PHPMAILER) {
$email_files = read_email_files();
if ($globals->userid) {
$user = lookup_user_id($globals->userid);
$user = BoincUser::lookup_id($globals->userid);
if (!$user) {
echo "No such user: $globals->userid\n";
exit();

View File

@ -27,7 +27,7 @@ require_once('../inc/countries.inc');
check_get_args(array("auth"));
$auth = get_str("auth");
$user = lookup_user_auth($auth);
$user = BoincUser::lookup_auth($auth);
if (!$user) {
error_page("no such account");
}

View File

@ -16,7 +16,7 @@
// You should have received a copy of the GNU Lesser General Public License
// along with BOINC. If not, see <http://www.gnu.org/licenses/>.
require_once("../inc/db.inc");
require_once("../inc/boinc_db.inc");
require_once("../inc/xml.inc");
xml_header();
@ -27,7 +27,7 @@ if ($retval) xml_error($retval);
check_get_args(array("account_key"));
$auth = get_str("account_key");
$user = lookup_user_auth($auth);
$user = BoincUser::lookup_auth($auth);
if (!$user) {
xml_error(ERR_DB_NOT_FOUND);
}
@ -60,7 +60,7 @@ $user->project_prefs
<venue>$user->venue</venue>";
if ($user->teamid) {
$team = lookup_team($user->teamid);
$team = BoincTeam::lookup_id_nocache($user->teamid);
if ($team->userid == $user->id) {
$ret = $ret . "<teamfounder/>\n";
}

View File

@ -82,7 +82,7 @@ if ($auth) {
$password_hash = get_str("password_hash", true);
}
$user = lookup_user_auth($auth);
$user = BoincUser::lookup_auth($auth);
if (!$user) {
xml_error(ERR_DB_NOT_FOUND);
}
@ -161,7 +161,7 @@ if (!is_null($teamid)) {
if ($teamid==0) {
user_quit_team($user);
} else {
$team = lookup_team($teamid);
$team = BoincTeam::lookup_id_nocache($teamid);
if ($team && $team->joinable) {
user_join_team($team, $user);
}

View File

@ -18,7 +18,7 @@
// RPC handler for account creation
require_once("../inc/db.inc");
require_once("../inc/boinc_db.inc");
require_once("../inc/util.inc");
require_once("../inc/email.inc");
require_once("../inc/xml.inc");
@ -67,7 +67,7 @@ if (strlen($passwd_hash) != 32) {
xml_error(-1, "password hash length not 32");
}
$user = lookup_user_email_addr($email_addr);
$user = BoincUser::lookup_email_addr($email_addr);
if ($user) {
if ($user->passwd_hash != $passwd_hash) {
xml_error(ERR_DB_NOT_UNIQUE);

View File

@ -53,8 +53,8 @@ if ($privatekey) {
//
$teamid = post_int("teamid", true);
if ($teamid) {
$team = lookup_team($teamid);
$clone_user = lookup_user_id($team->userid);
$team = BoincTeam::lookup_id($teamid);
$clone_user = BoincUser::lookup_id($team->userid);
if (!$clone_user) {
error_page("User $userid not found");
}
@ -83,7 +83,7 @@ $new_email_addr = strtolower(post_str("new_email_addr"));
if (!is_valid_email_addr($new_email_addr)) {
show_error(tra("Invalid email address: you must enter a valid address of the form name@domain"));
}
$user = lookup_user_email_addr($new_email_addr);
$user = BoincUser::lookup_email_addr($new_email_addr);
if ($user) {
show_error(tra("There's already an account with that email address."));
}

View File

@ -1,7 +1,7 @@
<?php
// This file is part of BOINC.
// http://boinc.berkeley.edu
// Copyright (C) 2008 University of California
// Copyright (C) 2014 University of California
//
// BOINC is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License
@ -16,7 +16,7 @@
// You should have received a copy of the GNU Lesser General Public License
// along with BOINC. If not, see <http://www.gnu.org/licenses/>.
require_once('../inc/db.inc');
require_once('../inc/boinc_db.inc');
require_once('../inc/util.inc');
require_once('../inc/countries.inc');
require_once('../inc/translation.inc');
@ -53,8 +53,8 @@ echo "
$teamid = get_int("teamid", true);
if ($teamid) {
$team = lookup_team($teamid);
$user = lookup_user_id($team->userid);
$team = BoincTeam::lookup_id($teamid);
$user = BoincUser::lookup_id($team->userid);
if (!$user) {
echo "No such user";
} else {

View File

@ -28,7 +28,7 @@ $retval = db_init_xml();
if ($retval) xml_error($retval);
$auth = get_str("account_key");
$user = lookup_user_auth($auth);
$user = BoincUser::lookup_auth($auth);
if (!$user) {
xml_error(ERR_DB_NOT_FOUND);
}

View File

@ -1,7 +1,7 @@
<?php
// This file is part of BOINC.
// http://boinc.berkeley.edu
// Copyright (C) 2008 University of California
// Copyright (C) 2014 University of California
//
// BOINC is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License
@ -37,7 +37,7 @@ if (!is_valid_email_addr($email_addr)) {
} else if ($email_addr == $user->email_addr) {
echo tra("New email address is same as existing address. Nothing is changed.");
} else {
$existing = lookup_user_email_addr($email_addr);
$existing = BoincUser::lookup_email_addr($email_addr);
if ($existing) {
echo tra("There's already an account with that email address");
} else {

View File

@ -21,7 +21,7 @@ require_once("../inc/forum.inc");
require_once("../inc/image.inc"); // Avatar scaling
if (post_str("account_key", true) != null) {
$user = lookup_user_auth(post_str("account_key"));
$user = BoincUser::lookup_auth(post_str("account_key"));
$rpc = true;
} else {
$user = get_logged_in_user();

View File

@ -45,12 +45,12 @@ if (strlen($passwd)<$min_passwd_length) {
error_page(tra("New password is too short: minimum password length is %1 characters.", $min_passwd_length));
}
if ($auth) {
$user = lookup_user_auth($auth);
$user = BoincUser::lookup_auth($auth);
if (!$user) {
error_page(tra("Invalid account key"));
}
} else {
$user = lookup_user_email_addr($email_addr);
$user = BoincUser::lookup_email_addr($email_addr);
if (!$user) {
error_page(tra("No account with that email address was found"));
}

View File

@ -35,7 +35,7 @@ if ($method != "user_posts" && $method != "user_threads") {
}
$userid = get_int("userid", true);
$user = lookup_user_id($userid);
$user = BoincUser::lookup_id($userid);
if (!$user) {
xml_error(ERR_DB_NOT_FOUND);
}

View File

@ -30,7 +30,7 @@ $offset = get_int("offset", true);
if (!$offset) $offset=0;
$items_per_page = 20;
$user = lookup_user_id($userid);
$user = BoincUser::lookup_id($userid);
$logged_in_user = get_logged_in_user(false);
// Policy for what to show:

View File

@ -16,20 +16,19 @@
// You should have received a copy of the GNU Lesser General Public License
// along with BOINC. If not, see <http://www.gnu.org/licenses/>.
require_once("../inc/db.inc");
require_once("../inc/boinc_db.inc");
require_once("../inc/util.inc");
require_once("../inc/host.inc");
check_get_args(array("hostid"));
db_init();
$user = get_logged_in_user();
page_head(tra("Updating computer credit"));
$hostid = get_int("hostid");
$host = lookup_host($hostid);
$host = BoincHost::lookup_id($hostid);
if (!$host || $host->userid != $user->id) {
error_page(We have no record of that computer");
}

View File

@ -1,7 +1,7 @@
<?php
// This file is part of BOINC.
// http://boinc.berkeley.edu
// Copyright (C) 2008 University of California
// Copyright (C) 2014 University of California
//
// BOINC is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License
@ -44,7 +44,7 @@ if ($user && $user->id == $userid) {
$userid = 0;
}
if ($userid) {
$user = lookup_user_id($userid);
$user = BoincUser::lookup_id($userid);
if (!$user) {
error_page("No such user");
}

View File

@ -33,7 +33,7 @@ $email_addr = strtolower(sanitize_tags(post_str("email_addr", true)));
$passwd = post_str("passwd", true);
if ($email_addr && $passwd) {
$user = lookup_user_email_addr($email_addr);
$user = BoincUser::lookup_email_addr($email_addr);
if (!$user) {
page_head("No such account");
echo "No account with email address <b>$email_addr</b> exists.
@ -111,7 +111,7 @@ if (substr($user->authenticator, 0, 1) == 'x'){
//User has been bad so we are going to take away ability to post for awhile.
error_page("This account has been administratively disabled.");
}
$user = lookup_user_auth($authenticator);
$user = BoincUser::lookup_auth($authenticator);
if (!$user) {
page_head("Login failed");
echo "There is no account with that authenticator.

View File

@ -1,7 +1,7 @@
<?php
// This file is part of BOINC.
// http://boinc.berkeley.edu
// Copyright (C) 2008 University of California
// Copyright (C) 2014 University of California
//
// BOINC is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License
@ -46,7 +46,7 @@ $email_addr = sanitize_email($email_addr);
if (!strlen($email_addr)) {
error_page("no address given");
}
$user = lookup_user_email_addr($email_addr);
$user = BoincUser::lookup_email_addr($email_addr);
if (!$user) {
page_head("No such user");

View File

@ -1,7 +1,7 @@
<?php
// This file is part of BOINC.
// http://boinc.berkeley.edu
// Copyright (C) 2008 University of California, 2011 Daniel Lombraña González
// Copyright (C) 2014 University of California, 2011 Daniel Lombraña González
//
// BOINC is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License
@ -73,8 +73,8 @@ try {
//
//$teamid = post_int("teamid", true);
//if ($teamid) {
// $team = lookup_team($teamid);
// $clone_user = lookup_user_id($team->userid);
// $team = BoincTeam::lookup_id($teamid);
// $clone_user = BoincUser::lookup_id($team->userid);
// if (!$clone_user) {
// echo "User $userid not found";
// exit();
@ -110,7 +110,7 @@ try {
name@domain"
);
}
$user = lookup_user_email_addr($new_email_addr);
$user = BoincUser::lookup_email_addr($new_email_addr);
if (!$user) {
$passwd_hash = random_string();

View File

@ -1,7 +1,7 @@
<?php
// This file is part of BOINC.
// http://boinc.berkeley.edu
// Copyright (C) 2008 University of California
// Copyright (C) 2014 University of California
//
// BOINC is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License
@ -24,7 +24,7 @@ check_get_args(array("code", "userid"));
$code = get_str("code");
$userid = get_int('userid');
$user = lookup_user_id($userid);
$user = BoincUser::lookup_id($userid);
if (!$user) {
error_page("no such user");
}

View File

@ -98,7 +98,7 @@ function do_inbox($logged_in_user) {
$msg->update("opened=1");
}
echo "<td valign=top> $checkbox $msg->subject </td>\n";
echo "<td valign=top>".user_links(get_user_from_id($msg->senderid));
echo "<td valign=top>".user_links(BoincUser::lookup_id($msg->senderid));
show_block_link($msg->senderid);
echo "<br>".time_str($msg->date)."</td>\n";
echo "<td valign=top>".output_transform($msg->content, $options)."<p>";
@ -200,12 +200,12 @@ function do_send($logged_in_user) {
$user = explode(" ", $username);
if (is_numeric($user[0])) { // user ID is gived
$userid = $user[0];
$user = lookup_user_id($userid);
$user = BoincUser::lookup_id($userid);
if ($user == null) {
pm_form($replyto, $userid, tra("Could not find user with id %1", $userid));
}
} else {
$user = lookup_user_name($username);
$user = BoincUser::lookup_name($username);
if ($user == null) {
pm_form($replyto, $userid, tra("Could not find user with username %1", $username));
} elseif ($user == -1) { // Non-unique username

View File

@ -46,7 +46,7 @@ row1($UOTD_heading);
echo "<tr><td>";
$profile = get_current_uotd();
if ($profile) {
$user = lookup_user_id($profile->userid);
$user = BoincUser::lookup_id($profile->userid);
echo uotd_thumbnail($profile, $user);
echo user_links($user)."<br>";
$resp = output_transform($profile->response1);

View File

@ -1,7 +1,7 @@
<?php
// This file is part of BOINC.
// http://boinc.berkeley.edu
// Copyright (C) 2008 University of California
// Copyright (C) 2014 University of California
//
// BOINC is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License
@ -24,7 +24,7 @@ if (DISABLE_PROFILES) error_page("Profiles are disabled");
check_get_args(array("search_string", "offset"));
function show_profile_link2($profile, $n) {
$user = lookup_user_id($profile->userid);
$user = BoincUser::lookup_id($profile->userid);
echo "<tr><td>".user_links($user)."</td><td>".date_str($user->create_time)."</td><td>$user->country</td><td>".(int)$user->total_credit."</td><td>".(int)$user->expavg_credit."</td></tr>\n";
}

View File

@ -42,7 +42,7 @@ function list_files($user, $err_msg) {
$dir = sandbox_dir($user);
$d = opendir($dir);
if (!$d) error_page("Can't open sandbox directory");
page_head("file sandbox for $user->name");
page_head("File sandbox for $user->name");
echo "
<form action=sandbox.php method=post ENCTYPE=\"multipart/form-data\">
<input type=hidden name=action value=upload_file>

View File

@ -45,10 +45,10 @@ if ($format=="xml"){
$retval = db_init_xml();
if ($retval) xml_error($retval);
if ($auth){
$user = lookup_user_auth($auth);
$user = BoincUser::lookup_auth($auth);
$show_hosts = true;
} else {
$user = lookup_user_id($id);
$user = BoincUser::lookup_id($id);
$show_hosts = false;
}
if (!$user) xml_error(ERR_DB_NOT_FOUND);
@ -70,7 +70,7 @@ if ($format=="xml"){
$community_links = $data->clo;
} else {
// No data was found, generate new data for the cache and store it
$user = lookup_user_id($id);
$user = BoincUser::lookup_id($id);
if (!$user) {
error_page("No such user $id");
}

View File

@ -409,21 +409,19 @@ function handle_query_job($user) {
table_header("Logical name<br><span class=note>(click to view)</span>",
"Size (bytes)", "MD5"
);
$fanout = parse_config(get_config(), "<uldl_dir_fanout>");
$download_dir = parse_config(get_config(), "<download_dir>");
foreach ($x->workunit->file_ref as $fr) {
$pname = (string)$fr->file_name;
$lname = (string)$fr->open_name;
$dir = filename_hash($pname, $fanout);
$path = $download_dir."/$dir/$pname";
$md5 = md5_file($path);
$s = stat($path);
$size = $s['size'];
table_row(
"<a href=download/$dir/$pname>$lname</a>",
$size,
$md5
);
foreach ($x->file_info as $fi) {
if ((string)$fi->name == $pname) {
table_row(
"<a href=$fi->url>$lname</a>",
$fi->nbytes,
$fi->md5_cksum
);
break;
}
}
}
end_table();
@ -435,6 +433,7 @@ function handle_query_job($user) {
);
$results = BoincResult::enum("workunitid=$wuid");
$upload_dir = parse_config(get_config(), "<upload_dir>");
$fanout = parse_config(get_config(), "<uldl_dir_fanout>");
foreach($results as $result) {
echo "<tr>
<td><a href=result.php?resultid=$result->id>$result->id &middot; $result->name </a></td>

View File

@ -38,7 +38,7 @@ if ($xml) {
xml_error(ERR_DB_NOT_FOUND);
}
$account_key = get_str('account_key', true);
$user = lookup_user_auth($account_key);
$user = Boinc_user::lookup_auth($account_key);
$show_email = ($user && is_team_founder($user, $team));
echo "<users>\n";
$users = BoincUser::enum_fields("id, email_addr, send_email, name, total_credit, expavg_credit, expavg_time, has_profile, donated, country, cross_project_id, create_time, url", "teamid=$team->id");

View File

@ -39,7 +39,7 @@ if (!$user->teamid) {
}
function send_founder_transfer_email($team, $user) {
$founder = lookup_user_id($team->userid);
$founder = BoincUser::lookup_id($team->userid);
// send founder a private message for good measure

View File

@ -1,7 +1,7 @@
<?php
// This file is part of BOINC.
// http://boinc.berkeley.edu
// Copyright (C) 2008 University of California
// Copyright (C) 2014 University of California
//
// BOINC is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License
@ -31,7 +31,7 @@ if (!$profile) {
echo tra("No user of the day has been chosen.");
} else {
$d = gmdate("d F Y", time());
$user = lookup_user_id($profile->userid);
$user = BoincUser::lookup_id($profile->userid);
page_head(tra("User of the Day for %1: %2", $d, $user->name));
start_table();
show_profile($user, get_logged_in_user(false));

View File

@ -1,7 +1,7 @@
<?php
// This file is part of BOINC.
// http://boinc.berkeley.edu
// Copyright (C) 2008 University of California
// Copyright (C) 2014 University of California
//
// BOINC is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License
@ -39,7 +39,7 @@ function send_validate_email() {
function validate() {
$x = get_str("x");
$u = get_int("u");
$user = lookup_user_id($u);
$user = BoincUser::lookup_id($u);
if (!$user) {
error_page(tra("No such user."));
}

View File

@ -186,9 +186,14 @@ typedef LPCSTR PCTSTR, LPCTSTR, PCUTSTR, LPCUTSTR;
#if !defined(__MINGW32__) && !defined(__CYGWIN32__)
#include <crtdbg.h>
#endif
#if !defined(__CYGWIN32__)
#include <delayimp.h>
#endif
#ifdef __cplusplus
#include <algorithm>
#include <cassert>

View File

@ -517,13 +517,13 @@ int diagnostics_set_thread_crash_message(char* message) {
//
char* diagnostics_format_thread_state(int thread_state) {
switch(thread_state) {
case ThreadStateInitialized: return "Initialized";
case ThreadStateReady: return "Ready";
case ThreadStateRunning: return "Running";
case ThreadStateStandby: return "Standby";
case ThreadStateTerminated: return "Terminated";
case ThreadStateWaiting: return "Waiting";
case ThreadStateTransition: return "Transition";
case StateInitialized: return "Initialized";
case StateReady: return "Ready";
case StateRunning: return "Running";
case StateStandby: return "Standby";
case StateTerminated: return "Terminated";
case StateWait: return "Waiting";
case StateTransition: return "Transition";
default: return "Unknown";
}
return "";
@ -1337,7 +1337,7 @@ int diagnostics_dump_process_information() {
int diagnostics_dump_thread_information(PBOINC_THREADLISTENTRY pThreadEntry) {
std::string strStatusExtra;
if (pThreadEntry->crash_state == ThreadStateWaiting) {
if (pThreadEntry->crash_state == StateWait) {
strStatusExtra += "Wait Reason: ";
strStatusExtra += diagnostics_format_thread_wait_reason(pThreadEntry->crash_wait_reason);
strStatusExtra += ", ";

View File

@ -20,17 +20,23 @@
#include "boinc_win.h"
#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L)
typedef LONG NTSTATUS;
typedef LONG KPRIORITY;
//MinGW-W64 defines this struct in its own header
#ifndef __MINGW32__
typedef struct _CLIENT_ID {
DWORD UniqueProcess;
DWORD UniqueThread;
} CLIENT_ID;
#endif
//MinGW-W64 defines this struct in its own header
#ifndef __MINGW32__
typedef struct _VM_COUNTERS {
#ifdef _WIN64
// the following was inferred by painful reverse engineering
@ -59,7 +65,10 @@ typedef struct _VM_COUNTERS {
SIZE_T PeakPagefileUsage;
#endif
} VM_COUNTERS;
#endif
//MinGW-W64 defines this struct in its own header
#ifndef __MINGW32__
typedef struct _SYSTEM_THREADS {
LARGE_INTEGER KernelTime;
LARGE_INTEGER UserTime;
@ -73,6 +82,7 @@ typedef struct _SYSTEM_THREADS {
LONG State;
LONG WaitReason;
} SYSTEM_THREADS, * PSYSTEM_THREADS;
#endif
typedef struct _SYSTEM_PROCESSES {
ULONG NextEntryDelta;
@ -100,15 +110,18 @@ typedef struct _SYSTEM_PROCESSES {
SYSTEM_THREADS Threads[1];
} SYSTEM_PROCESSES, * PSYSTEM_PROCESSES;
//MinGW-W64 defines this struct in its own header
#ifndef __MINGW32__
typedef enum _THREAD_STATE {
ThreadStateInitialized,
ThreadStateReady,
ThreadStateRunning,
ThreadStateStandby,
ThreadStateTerminated,
ThreadStateWaiting,
ThreadStateTransition
StateInitialized,
StateReady,
StateRunning,
StateStandby,
StateTerminated,
StateWait,
StateTransition
} THREAD_STATE, *PTHREAD_STATE;
#endif
typedef enum _THREAD_WAIT_REASON {
ThreadWaitReasonExecutive,

1114
locale/ms/BOINC-Android.po Normal file

File diff suppressed because it is too large Load Diff

159
locale/ms/BOINC-Client.po Normal file
View File

@ -0,0 +1,159 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-10-15 22:25-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: acct_mgr.cpp:450 acct_mgr.cpp:459
msgid "Message from account manager"
msgstr ""
#: client_msgs.cpp:81
msgid "Message from server"
msgstr ""
#: client_state.cpp:258
msgid ""
"Some tasks need more memory than allowed by your preferences. Please check "
"the preferences."
msgstr ""
#: client_state.cpp:520
msgid "Couldn't write state file; check directory permissions"
msgstr ""
#: cs_cmdline.cpp:303
msgid "The HTTP_PROXY environment variable must specify an HTTP proxy"
msgstr ""
#: cs_scheduler.cpp:613
#, c-format
msgid ""
"You used the wrong URL for this project. When convenient, remove this "
"project, then add %s"
msgstr ""
#: cs_statefile.cpp:828 ../sched/sched_types.cpp:259
msgid "Syntax error in app_info.xml"
msgstr ""
#: cs_statefile.cpp:868
msgid "File referenced in app_info.xml does not exist: "
msgstr ""
#: current_version.cpp:91
msgid "A new version of BOINC is available."
msgstr ""
#: current_version.cpp:94 current_version.cpp:102
msgid "Download"
msgstr ""
#: log_flags.cpp:269 log_flags.cpp:449
msgid "Unexpected text in cc_config.xml"
msgstr ""
#: log_flags.cpp:423 log_flags.cpp:475
msgid "Unrecognized tag in cc_config.xml"
msgstr ""
#: log_flags.cpp:440
msgid "Missing start tag in cc_config.xml"
msgstr ""
#: log_flags.cpp:465
msgid "Error in cc_config.xml options"
msgstr ""
#: log_flags.cpp:483
msgid "Missing end tag in cc_config.xml"
msgstr ""
#: ../sched/handle_request.cpp:307
msgid "Invalid or missing account key. To fix, remove and add this project."
msgstr ""
#: ../sched/handle_request.cpp:849
msgid "Invalid code signing key. To fix, remove and add this project."
msgstr ""
#: ../sched/handle_request.cpp:859
msgid ""
"The project has changed its security key. Please remove and add this "
"project."
msgstr ""
#: ../sched/handle_request.cpp:943
msgid "This project doesn't support operating system"
msgstr ""
#: ../sched/handle_request.cpp:969
msgid "This project doesn't support CPU type"
msgstr ""
#: ../sched/handle_request.cpp:993
msgid ""
"Your BOINC client software is too old. Please install the current version."
msgstr ""
#: ../sched/handle_request.cpp:1259
msgid "This project doesn't support computers of type"
msgstr ""
#: ../sched/sched_send.cpp:1092
msgid "Upgrade to the latest driver to process tasks using your computer's GPU"
msgstr ""
#: ../sched/sched_send.cpp:1099
msgid ""
"Upgrade to the latest driver to use all of this project's GPU applications"
msgstr ""
#: ../sched/sched_send.cpp:1118
msgid ""
"A newer version of BOINC is needed to use your NVIDIA GPU; please upgrade to "
"the current version"
msgstr ""
#: ../sched/sched_send.cpp:1146
#, c-format
msgid "An %s GPU is required to run tasks for this project"
msgstr ""
#: ../sched/sched_send.cpp:1262
msgid "No tasks are available for the applications you have selected."
msgstr ""
#: ../sched/sched_send.cpp:1288
msgid "Your computer type is not supported by this project"
msgstr ""
#: ../sched/sched_send.cpp:1294
msgid "Newer BOINC version required; please install current version"
msgstr ""
#: ../sched/sched_send.cpp:1305
#, c-format
msgid ""
"Tasks for %s are available, but your preferences are set to not accept them"
msgstr ""
#: ../sched/sched_types.cpp:254
msgid "Unknown app name in app_info.xml"
msgstr ""
#: ../sched/sched_version.cpp:214
msgid "Your app_info.xml file doesn't have a usable version of"
msgstr ""

3705
locale/ms/BOINC-Manager.po Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

119
locale/ms/BOINC-Setup.po Normal file
View File

@ -0,0 +1,119 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-01-26 00:00-0800\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: Installer.cpp:124
#, c-format
msgid "Sorry, this version of %s requires system 10.5 or higher."
msgstr ""
#: PostInstall.cpp:130 PostInstall.cpp:1136 uninstall.cpp:1618
msgid "Yes"
msgstr ""
#: PostInstall.cpp:131 PostInstall.cpp:1137 uninstall.cpp:1619
msgid "No"
msgstr ""
#: PostInstall.cpp:133
msgid "Should BOINC run even when no user is logged in?"
msgstr ""
#: PostInstall.cpp:1416
#, c-format
msgid ""
"Users who are permitted to administer this computer will automatically be "
"allowed to run and control %s.\n"
"\n"
"Do you also want non-administrative users to be able to run and control %s "
"on this Mac?"
msgstr ""
#: PostInstall.cpp:1444
#, c-format
msgid "Do you want to set %s as the screensaver for all %s users on this Mac?"
msgstr ""
#: uninstall.cpp:82
msgid "OK"
msgstr ""
#: uninstall.cpp:136
msgid "Permission error after relaunch"
msgstr ""
#: uninstall.cpp:141
msgid ""
"Removal may take several minutes.\n"
"Please be patient."
msgstr ""
#: uninstall.cpp:156
#, c-format
msgid ""
"Are you sure you want to completely remove %s from your computer?\n"
"\n"
"This will remove the executables but will not touch %s data files."
msgstr ""
#: uninstall.cpp:163
#, c-format
msgid "Canceled: %s has not been touched."
msgstr ""
#: uninstall.cpp:174
#, c-format
msgid "An error occurred: error code %d"
msgstr ""
#: uninstall.cpp:230
msgid "name of user"
msgstr ""
#: uninstall.cpp:272
msgid ""
"Do you also want to remove VirtualBox from your computer?\n"
"(VirtualBox was installed along with BOINC.)"
msgstr ""
#: uninstall.cpp:312
#, c-format
msgid ""
"Removal completed.\n"
"\n"
" You may want to remove the following remaining items using the Finder: \n"
"the directory \"%s\"\n"
"\n"
"for each user, the file\n"
"\"%s\"."
msgstr ""
#: uninstall.cpp:840
#, c-format
msgid ""
"Enter your administrator password to completely remove %s from you "
"computer.\n"
"\n"
msgstr ""
#: uninstall.cpp:1616
msgid "Cancel"
msgstr ""
#: uninstall.cpp:1617
msgid "Continue..."
msgstr ""

940
locale/ms/BOINC-Web.po Normal file
View File

@ -0,0 +1,940 @@
# BOINC web translation
# Copyright (C) 2008-2009 University of California
#
# This file is distributed under the same license as BOINC.
#
# FileID : $Id$
#
msgid ""
msgstr ""
"Project-Id-Version: BOINC $Id$\n"
"Report-Msgid-Bugs-To: BOINC translation team <boinc_loc@ssl.berkeley.edu>\n"
"POT-Creation-Date: 2014-02-01 00:00 PST\n"
"Last-Translator: Generated automatically from source files\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-SourceCharset: utf-8\n"
#: docutil.php:21
msgid "Search"
msgstr ""
#: docutil.php:103
msgid "Return to BOINC main page"
msgstr ""
#: docutil.php:114
#, php-format
msgid "This page is %stranslatable%s."
msgstr ""
#: download.php:39
msgid ""
"We recommend that you also install VirtualBox, so your computer can work on "
"science projects that require it."
msgstr ""
#: download.php:41
msgid "Learn more about VirtualBox."
msgstr ""
#: download.php:51
msgid "Download BOINC + VirtualBox"
msgstr ""
#: download.php:54 download.php:69
#, php-format
msgid "for %s"
msgstr ""
#: download.php:57 download.php:72
#, php-format
msgid "BOINC version %s"
msgstr ""
#: download.php:59
#, php-format
msgid "VirtualBox version %s"
msgstr ""
#: download.php:67
msgid "Download BOINC"
msgstr ""
#: download.php:123
msgid ""
"BOINC is a program that lets you donate your idle computer time to science "
"projects like SETI@home, Climateprediction.net, Rosetta@home, World "
"Community Grid, and many others."
msgstr ""
#: download.php:125
msgid ""
"After installing BOINC on your computer, you can connect it to as many of "
"these projects as you like."
msgstr ""
#: download.php:127
msgid ""
"You may run this software on a computer only if you own the computer or have "
"the permission of its owner."
msgstr ""
#: download.php:132
msgid ""
"We recommend that you download BOINC from the Google Play Store or Amazon "
"Appstore, not from here."
msgstr ""
#: download.php:167
msgid "System requirements"
msgstr ""
#: download.php:168
msgid "Release notes"
msgstr ""
#: download.php:169 index.php:86
msgid "Help"
msgstr ""
#: download.php:170
msgid "All versions"
msgstr ""
#: download.php:171
msgid "Version history"
msgstr ""
#: download.php:172
msgid "GPU computing"
msgstr ""
#: download.php:190
msgid "BOINC: compute for science"
msgstr ""
#: help.php:12
#, php-format
msgid ""
"BOINC Online Help lets you talk one-on-one with experienced BOINC users, who "
"can: %s answer questions about BOINC and volunteer computing; %s walk you "
"through the process of installing and using BOINC; %s troubleshoot any "
"problems you might have."
msgstr ""
#: help.php:21
#, php-format
msgid ""
"BOINC Online Help is based on %sSkype%s, an Internet-based telephone system. "
"Skype is free (both the software and the calls). If you don't already have "
"Skype, please %sdownload and install it now%s. When you're finished, return "
"to this page."
msgstr ""
#: help.php:28
msgid ""
"The best way to get help is by voice, for which you need either built-in "
"microphone and speakers or an external headset for your computer. You can "
"also use Skype's text-based chat system or regular email (if you don't have "
"Skype) to communicate with Help Volunteers."
msgstr ""
#: help.php:31
msgid ""
"Volunteers speaking several languages are available. Please select a "
"language:"
msgstr ""
#: help.php:47
msgid "Be a Help Volunteer"
msgstr ""
#: help.php:50
#, php-format
msgid ""
"If you're an experienced BOINC user, we encourage you to %sbecome a Help "
"Volunteer%s. It's a great way to help the cause of scientific research and "
"volunteer computing - and it's fun!"
msgstr ""
#: help.php:56
#, php-format
msgid ""
"If you're already a Help Volunteer: to edit your settings, %sclick here%s."
msgstr ""
#: help_funcs.php:107
msgid ""
"BOINC helpers are unpaid volunteers. Their advice is not endorsed by BOINC "
"or the University of California."
msgstr ""
#: help_funcs.php:110
msgid "%1Never%2 give email address or password information to BOINC helpers."
msgstr ""
#: index.php:24
msgid "Computing power"
msgstr ""
#: index.php:26
msgid "Top 100 volunteers"
msgstr ""
#: index.php:27
msgid "Statistics"
msgstr ""
#: index.php:55
msgid "Active:"
msgstr ""
#: index.php:55
msgid "volunteers,"
msgstr ""
#: index.php:55
msgid "computers.\n"
msgstr ""
#: index.php:56
msgid "24-hour average:"
msgstr ""
#: index.php:56
msgid "PetaFLOPS."
msgstr ""
#: index.php:68
msgid "News"
msgstr ""
#: index.php:83
msgid "Volunteer"
msgstr ""
#: index.php:85
msgid "Download"
msgstr ""
#: index.php:87 index.php:120 index.php:171
msgid "Documentation"
msgstr ""
#: index.php:88
msgid "Add-ons"
msgstr ""
#: index.php:89
msgid "Links"
msgstr ""
#: index.php:94
msgid ""
"Use the idle time on your computer (Windows, Mac, Linux, or Android) to cure "
"diseases, study global warming, discover pulsars, and do many other types of "
"scientific research. It's safe, secure, and easy:"
msgstr ""
#: index.php:96
msgid "Choose projects"
msgstr ""
#: index.php:97
msgid "Download BOINC software"
msgstr ""
#: index.php:98
msgid "Enter an email address and password."
msgstr ""
#: index.php:102
#, php-format
msgid ""
"Or, if you run several projects, try an %saccount manager%s such as %"
"sGridRepublic%s or %sBAM!%s. "
msgstr ""
#: index.php:118
msgid "Compute with BOINC"
msgstr ""
#: index.php:121
msgid "Software updates"
msgstr ""
#: index.php:128
msgid ""
"%1Scientists%2: use BOINC to create a %3volunteer computing project%4 giving "
"you the computing power of thousands of CPUs."
msgstr ""
#: index.php:132
msgid ""
"%1Universities%2: use BOINC to create a %3Virtual Campus Supercomputing "
"Center%4."
msgstr ""
#: index.php:137
msgid "%1Companies%2: use BOINC for %3desktop Grid computing%4."
msgstr ""
#: index.php:149
msgid "The BOINC project"
msgstr ""
#: index.php:155
msgid "Message boards"
msgstr ""
#: index.php:156
msgid "Email lists"
msgstr ""
#: index.php:157
msgid "Personnel and contributors"
msgstr ""
#: index.php:158
msgid "Events"
msgstr ""
#: index.php:159
msgid "Papers and talks"
msgstr ""
#: index.php:160
msgid "Research projects"
msgstr ""
#: index.php:161
msgid "Logos and graphics"
msgstr ""
#: index.php:162
msgid "and"
msgstr ""
#: index.php:166
msgid "Help wanted"
msgstr ""
#: index.php:168
msgid "Programming"
msgstr ""
#: index.php:169
msgid "Translation"
msgstr ""
#: index.php:170
msgid "Testing"
msgstr ""
#: index.php:172
msgid "Publicity"
msgstr ""
#: index.php:174
msgid "Software development"
msgstr ""
#: index.php:175
msgid "APIs for add-on software"
msgstr ""
#: index.php:217
#, php-format
msgid ""
"Open-source software for %svolunteer computing%s and %sgrid computing%s."
msgstr ""
#: index.php:230
msgid "BOINC is based at The University of California, Berkeley"
msgstr ""
#: projects.inc:14
msgid "Distributed sensing"
msgstr ""
#: projects.inc:19
msgid "Stanford University"
msgstr ""
#: projects.inc:20
msgid "Seismology"
msgstr ""
#: projects.inc:21
msgid ""
"The Quake-Catcher Network is developing the world's largest seismic network "
"using sensors attached to Internet-connected computers. You must buy a "
"sensor to participate."
msgstr ""
#: projects.inc:27
msgid "BOINC Poland Foundation"
msgstr ""
#: projects.inc:28
msgid "Environmental research"
msgstr ""
#: projects.inc:29
msgid ""
"This project is creating a free and continuously updated map of radiation "
"levels by using sensors connected to volunteers' computers. You must buy a "
"sensor to participate."
msgstr ""
#: projects.inc:33
msgid ""
"To participate in these projects you must buy a sensor and attach it to your "
"computer."
msgstr ""
#: projects.inc:37
msgid "Cognitive science and artifical intelligence"
msgstr ""
#: projects.inc:60 projects.inc:364 projects.inc:408 projects.inc:457
#: projects.inc:464 projects.inc:511
msgid "Private"
msgstr ""
#: projects.inc:61
msgid "Artificial intelligence"
msgstr ""
#: projects.inc:62
msgid ""
"Parse and convert semantic nets for use in FreeHAL, an artificial "
"intelligence that uses semantic networks, stemmers, part of speech "
"databases, and part of speech taggers in order to imitate human behavior in "
"conversations."
msgstr ""
#: projects.inc:69
msgid "Biology and Medicine"
msgstr ""
#: projects.inc:82
msgid "University College Dublin"
msgstr ""
#: projects.inc:83
msgid "Antimalarial drug discovery"
msgstr ""
#: projects.inc:84
msgid ""
"The parasite that causes malaria continues to evolve resistance to available "
"medication. We therefore urgently need to discover new drugs to replace "
"existing drugs. Importantly, these new drugs need to target NEW proteins in "
"the parasite. The FightMalaria@Home project is aimed at finding these new "
"targets."
msgstr ""
#: projects.inc:90
msgid "University of Karlsruhe (Germany)"
msgstr ""
#: projects.inc:91
msgid "Protein structure prediction"
msgstr ""
#: projects.inc:92
msgid ""
"POEM@HOME uses a computational approach to predict the biologically active "
"structure of proteins, to understand the signal-processing mechanisms when "
"the proteins interact with one another, to understand diseases related to "
"protein malfunction or aggregation, and to develop new drugs on the basis of "
"the three-dimensions structure of biologically important proteins."
msgstr ""
#: projects.inc:98
msgid "University of Delaware"
msgstr ""
#: projects.inc:99
msgid "Study of protein - ligand interactions"
msgstr ""
#: projects.inc:100
msgid ""
"Docking@Home has both bioscience and computer science goals. The project "
"aims to further knowledge of the atomic details of protein-ligand "
"interactions and, by doing so, will search for insights into the discovery "
"of novel pharmaceuticals."
msgstr ""
#: projects.inc:114
msgid "Barcelona Biomedical Research Park (PRBB)"
msgstr ""
#: projects.inc:115
msgid "Molecular simulations of proteins"
msgstr ""
#: projects.inc:116
msgid ""
"GPUGrid.net opens novel computational scenarios by the first full-atom "
"molecular dynamics code (CellMD) specially optimized to run on NVIDIA GPUs. "
"New biomedical applications suddenly become possible giving a new role to "
"computational biology for biomedical research."
msgstr ""
#: projects.inc:122
msgid "Technion, Israel"
msgstr ""
#: projects.inc:123
msgid "Genetic linkage analysis"
msgstr ""
#: projects.inc:124
msgid ""
"Superlink@Technion helps geneticists all over the world find disease-"
"provoking genes causing some types of diabetes, hypertension (high blood "
"pressure), cancer, schizophrenia and many others."
msgstr ""
#: projects.inc:138
msgid ""
"University of Maryland Center for Bioinformatics and Computational Biology"
msgstr ""
#: projects.inc:139
msgid "Life science research"
msgstr ""
#: projects.inc:140
msgid ""
"The Lattice Project supplies computing power to scientists at the University "
"of Maryland studying evolutionary relationships based on DNA sequence data; "
"bacterial, plasmid, and virus protein sequences; and biological diversity in "
"nature reserves. "
msgstr ""
#: projects.inc:146
msgid "The Swiss Tropical Institute"
msgstr ""
#: projects.inc:147
msgid "Epidemiology"
msgstr ""
#: projects.inc:148
msgid ""
"Simulation models of the transmission dynamics and health effects of malaria "
"are an important tool for malaria control. They can be used to determine "
"optimal strategies for delivering mosquito nets, chemotherapy, or new "
"vaccines which are currently under development and testing. Such modeling "
"is extremely computer intensive, requiring simulations of large human "
"populations with a diverse set of parameters related to biological and "
"social factors that influence the distribution of the disease. "
msgstr ""
#: projects.inc:170
msgid "University of Washington"
msgstr ""
#: projects.inc:171 projects.inc:179
msgid "Biology"
msgstr ""
#: projects.inc:172
msgid ""
"Determine the 3-dimensional shapes of proteins in research that may "
"ultimately lead to finding cures for some major human diseases. By running "
"Rosetta@home you will help us speed up and extend our research in ways we "
"couldn't possibly attempt without your help. You will also be helping our "
"efforts at designing new proteins to fight diseases such as HIV, Malaria, "
"Cancer, and Alzheimer's"
msgstr ""
#: projects.inc:178
msgid "University of Vienna"
msgstr ""
#: projects.inc:180
msgid ""
"Calculate similarities between proteins. SIMAP provides a public database of "
"the resulting data, which plays a key role in many bioinformatics research "
"projects."
msgstr ""
#: projects.inc:186
msgid "Earth Sciences"
msgstr ""
#: projects.inc:198
msgid "Oxford University"
msgstr ""
#: projects.inc:199
msgid "Climate study"
msgstr ""
#: projects.inc:200
msgid ""
"Investigate the approximations that have to be made in state-of-the-art "
"climate models. By running the model thousands of times we hope to find out "
"how the model responds to slight tweaks to these approximations - slight "
"enough to not make the approximations any less realistic. This will allow us "
"to improve our understanding of how sensitive our models are to small "
"changes and also to things like changes in carbon dioxide and the sulphur "
"cycle. This will allow us to explore how climate may change in the next "
"century under a wide range of different scenarios."
msgstr ""
#: projects.inc:207
msgid "Physical Science"
msgstr ""
#: projects.inc:213
msgid "Mechanical engineering"
msgstr ""
#: projects.inc:214
msgid ""
"Currently we are calculating the optimum design of a structure call the 52 "
"bar truss"
msgstr ""
#: projects.inc:224 projects.inc:263 projects.inc:271
msgid "Astronomy"
msgstr ""
#: projects.inc:225
msgid ""
"We will combine the spectral coverage of GALEX, Pan-STARRS1, and WISE to "
"generate a multi-wavelength UV-optical-NIR galaxy atlas for the nearby "
"Universe. We will measure physical parameters (such as stellar mass surface "
"density, star formation rate surface density, attenuation, and first-order "
"star formation history) on a resolved pixel-by-pixel basis using spectral "
"energy distribution (SED) fitting techniques in a distributed computing mode."
msgstr ""
#: projects.inc:247
msgid "University of Texas at Austin"
msgstr ""
#: projects.inc:248 projects.inc:279
msgid "Chemistry"
msgstr ""
#: projects.inc:249
msgid ""
"A common problem in theoretical chemistry, condensed matter physics and "
"materials science is the calculation of the time evolution of an atomic "
"scale system where, for example, chemical reactions and/or diffusion occur. "
"Generally the events of interest are quite rare (many orders of magnitude "
"slower than the vibrational movements of the atoms), and therefore direct "
"simulations, tracking every movement of the atoms, would take thousands of "
"years of computer calculations on the fastest present day computer before a "
"single event of interest can be expected to occur. Our research group is "
"interested in calculating the long time dynamics of systems."
msgstr ""
#: projects.inc:262
msgid "University of Illinois at Urbana-Champaign"
msgstr ""
#: projects.inc:264
msgid ""
"The goal of Cosmology@Home is to search for the model that best describes "
"our Universe and to find the range of models that agree with the available "
"astronomical particle physics data."
msgstr ""
#: projects.inc:270
msgid "Rensselaer Polytechnic Institute"
msgstr ""
#: projects.inc:272
msgid ""
"The goal of Milkyway@Home is to create a highly accurate three dimensional "
"model of the Milky Way galaxy using data gathered by the Sloan Digital Sky "
"Survey."
msgstr ""
#: projects.inc:278
msgid "Leiden University, The Netherlands"
msgstr ""
#: projects.inc:280
msgid ""
"Surface science calculations using Classical Dynamics. Leiden Classical "
"allows volunteers, students and other scientist to submit their personal "
"calculations to the grid. Each user has his own personal queue for Classical "
"Dynamics jobs. In this way students have used the grid to simulate liquid "
"argon, or to test the validity of the ideal gas law by actually doing the "
"simulations through the grid."
msgstr ""
#: projects.inc:294
msgid "Univ. of Wisconsin - Milwaukee, Max Planck Institute"
msgstr ""
#: projects.inc:295
msgid "Astrophysics"
msgstr ""
#: projects.inc:296
msgid ""
"Search for spinning neutron stars (also called pulsars) using data from the "
"LIGO and GEO gravitational wave detectors, and from the Arecibo radio "
"observatory. Einstein@Home is a World Year of Physics 2005 project "
"supported by the American Physical Society (APS) and by a number of "
"international organizations."
msgstr ""
#: projects.inc:310 projects.inc:318
msgid "CERN (European Organization for Nuclear Research)"
msgstr ""
#: projects.inc:311 projects.inc:319
msgid "Physics"
msgstr ""
#: projects.inc:312
msgid ""
"The Large Hadron Collider (LHC) is a particle accelerator at CERN, the "
"European Organization for Nuclear Research, the world's largest particle "
"physics laboratory. It is the most powerful instrument ever built to "
"investigate on particles proprieties. LHC@home runs simulations to improve "
"the design of LHC and its detectors."
msgstr ""
#: projects.inc:320
msgid ""
"This project uses CERN-developed virtual machine technology for full-fledged "
"LHC event physics simulation on volunteer computers. Requires that you "
"install VirtualBox on your computer"
msgstr ""
#: projects.inc:326
msgid "University of California, Berkeley"
msgstr ""
#: projects.inc:327
msgid "Astrophysics, astrobiology"
msgstr ""
#: projects.inc:328
msgid ""
"SETI (Search for Extraterrestrial Intelligence) is a scientific area whose "
"goal is to detect intelligent life outside Earth. One approach, known as "
"radio SETI, uses radio telescopes to listen for narrow-bandwidth radio "
"signals from space. Such signals are not known to occur naturally, so a "
"detection would provide evidence of extraterrestrial technology."
msgstr ""
#: projects.inc:342
msgid "Bielefeld University of Applied Sciences"
msgstr ""
#: projects.inc:343
msgid "Chemical engineering and nanotechnology"
msgstr ""
#: projects.inc:344
msgid ""
"The study of molecular magnets and controlled nanoscale magnetism. These "
"magnetic molecules may be used to develop tiny magnetic switches, with "
"applications in medicine (such as local tumor chemotherapy) and "
"biotechnology."
msgstr ""
#: projects.inc:351
msgid "Multiple applications"
msgstr ""
#: projects.inc:356
msgid "Chinese Academy of Sciences"
msgstr ""
#: projects.inc:357
msgid "Physics, biochemistry, and others"
msgstr ""
#: projects.inc:358
msgid ""
"The objective of CAS@home is to encourage and assist scientists in China to "
"adopt the technologies of volunteer computing and volunteer thinking for "
"their research."
msgstr ""
#: projects.inc:365
msgid "Mathematics, physics, evolution"
msgstr ""
#: projects.inc:366
msgid ""
"Yoyo@home is an adapter between BOINC and several existing volunteer "
"computing projects: ECM, Muon, Evolution@home, and distributed.net"
msgstr ""
#: projects.inc:371 projects.inc:527
msgid "MTA-SZTAKI Laboratory of Parallel and Distributed Systems (Hungary)"
msgstr ""
#: projects.inc:372
msgid "European research projects"
msgstr ""
#: projects.inc:373
msgid ""
"The EDGeS@Home Beta project integrates volunteer computing into the service "
"grid network of Europe by allowing service grids to send workunits to be "
"processed by the volunteers of this project. The scientific projects covered "
"by the project include math, physics, biology, etc."
msgstr ""
#: projects.inc:379
msgid "Spanish universities and research centers"
msgstr ""
#: projects.inc:380
msgid "Various Spanish research projects"
msgstr ""
#: projects.inc:381
msgid "Research in physics, material science, and biomedicine"
msgstr ""
#: projects.inc:387
msgid "IBM Corporate Citizenship"
msgstr ""
#: projects.inc:388
msgid "Medical, environmental and other humanitarian research"
msgstr ""
#: projects.inc:389
msgid ""
"To further critical non-profit research on some of humanity's most pressing "
"problems by creating the world's largest volunteer computing grid. Research "
"includes HIV-AIDS, cancer, tropical and neglected diseases, solar energy, "
"clean water and many more."
msgstr ""
#: projects.inc:395
msgid "Mathematics, computing, and games"
msgstr ""
#: projects.inc:401
msgid "Computer Science"
msgstr ""
#: projects.inc:409
msgid "Mathematics, Physics, Artificial Intelligence"
msgstr ""
#: projects.inc:410
msgid "Simulation of quantum computing; Goldbach's conjecture."
msgstr ""
#: projects.inc:450 projects.inc:458
msgid "Cryptography"
msgstr ""
#: projects.inc:459
msgid ""
"Attempt to decode 3 original Enigma messages. The signals were intercepted "
"in the North Atlantic in 1942 and are believed to be unbroken."
msgstr ""
#: projects.inc:465 projects.inc:504 projects.inc:512 projects.inc:520
#: projects.inc:528 projects.inc:568
msgid "Mathematics"
msgstr ""
#: projects.inc:466
msgid "Study the Collatz Conjecture, an unsolved conjecture in mathematics"
msgstr ""
#: projects.inc:471
msgid "California State University Fullerton"
msgstr ""
#: projects.inc:472
msgid "Factorization of large integers"
msgstr ""
#: projects.inc:473
msgid ""
"NFS@Home is a research project that uses Internet-connected computers to do "
"the lattice sieving step in the Number Field Sieve factorization of large "
"integers. As a young school student, you gained your first experience at "
"breaking an integer into prime factors, such as 15 = 3 * 5 or 35 = 5 * 7. "
"NFS@Home is a continuation of that experience, only with integers that are "
"hundreds of digits long."
msgstr ""
#: projects.inc:479
msgid ""
"Vilnius Gediminas Technical University and Kaunas University of Technology "
"(Lithuania)"
msgstr ""
#: projects.inc:480
msgid "Software testing"
msgstr ""
#: projects.inc:481
msgid ""
"The aim of this project is to provide a powerful distributed computing "
"platform for scientists of Vilnius Gediminas Technical University (VGTU) as "
"well as others Lithuanian academic institutions. Current applications "
"involve the study of Monte-Carlo based software testing."
msgstr ""
#: projects.inc:503
msgid "Mathematical Institute of Leiden University / Kennislink"
msgstr ""
#: projects.inc:505
msgid ""
"Search for 'abc-triples': positive integers a,b,c such that a+b=c, a &lt; b "
"&lt; c, a,b,c have no common divisors and c > rad(abc), where rad(n) is the "
"product of the distinct prime factors of n. The ABC conjecture says that "
"there are only finitely many a,b,c such that log(c)/log(rad(abc)) > h for "
"any real h > 1. The ABC conjecture is currently one of the greatest open "
"problems in mathematics. If it is proven to be true, a lot of other open "
"problems can be answered directly from it."
msgstr ""
#: projects.inc:513
msgid ""
"Primegrid has multiple projects searching for different forms of very large "
"prime numbers, including searching for the largest known prime number."
msgstr ""
#: projects.inc:519
msgid "Hochschule RheinMain University of Applied Sciences"
msgstr ""
#: projects.inc:521
msgid ""
"Search for counterexamples to two conjectures related to the identification "
"of prime numbers"
msgstr ""
#: projects.inc:529
msgid ""
"Find all the generalized binary number systems (in which bases are matrices "
"and digits are vectors) up to dimension 11."
msgstr ""
#: ../html/inc/news.inc:40
msgid "Comment"
msgstr ""
#: ../html/inc/news.inc:111
#, php-format
msgid "News is available as an %sRSS feed%s"
msgstr ""

View File

@ -364,9 +364,16 @@ static int process_workunit(
bool found_file_number = false, found_open_name = false;
while (!xp.get_tag()) {
if (xp.parse_int("file_number", file_number)) {
sprintf(buf, " <file_name>%s</file_name>\n",
infiles[file_number].name
);
INFILE_DESC& id = infiles[file_number];
if (id.is_remote) {
sprintf(buf, " <file_name>jf_%s</file_name>\n",
infiles[file_number].md5
);
} else {
sprintf(buf, " <file_name>%s</file_name>\n",
infiles[file_number].name
);
}
out += buf;
found_file_number = true;
continue;