", mod_time)) {
continue;
@@ -173,11 +174,18 @@ int GLOBAL_PREFS::parse(FILE* in, char* host_venue) {
msg_printf(NULL, MSG_INFO, "GLOBAL_PREFS::parse: unrecognized: %s\n", buf);
}
}
+ PROJECT* pp = gstate.lookup_project(source_project.c_str());
+ if (pp) {
+ msg_printf(NULL, MSG_INFO, "Using general preferences from %s\n", pp->get_project_name());
+ } else {
+ msg_printf(NULL, MSG_INFO, "Using general preferences from unknown project %s\n", source_project.c_str());
+ }
+ msg_printf(NULL, MSG_INFO, "General preferences last updated %s\n", time_to_string(mod_time));
if (strlen(host_venue)) {
if (found_venue) {
msg_printf(NULL, MSG_INFO, "Using your general preferences for %s\n", host_venue);
} else {
- msg_printf(NULL, MSG_INFO, "General preferences for %s not found; using your default preferences\n", host_venue);
+ msg_printf(NULL, MSG_INFO, "No separate general preferences given for %s; using your default preferences\n", host_venue);
}
} else {
msg_printf(NULL, MSG_INFO, "Using your default general preferences\n");
diff --git a/client/prefs.h b/client/prefs.h
index ce6e18d470..84c0dfc69b 100644
--- a/client/prefs.h
+++ b/client/prefs.h
@@ -59,6 +59,8 @@ struct GLOBAL_PREFS {
int max_memory_mbytes;
int proc_priority;
int cpu_affinity;
+ string source_project;
+ string source_scheduler;
GLOBAL_PREFS();
void init();
diff --git a/client/win/wingui.cpp b/client/win/wingui.cpp
index ffa2d894c3..63be3bc8a6 100755
--- a/client/win/wingui.cpp
+++ b/client/win/wingui.cpp
@@ -33,7 +33,7 @@ void show_message(PROJECT* p, char* msg, int priority) {
if (p) {
x = p->get_project_name();
} else {
- x = "BOINC";
+ x = "---";
}
if(g_myWnd) {
diff --git a/doc/credit.php b/doc/credit.php
index 2033ba2f47..04e5688ebf 100644
--- a/doc/credit.php
+++ b/doc/credit.php
@@ -6,9 +6,6 @@ echo "
Each project gives you credit for the computations your
computers performs for the project.
-These credits are used to generate web-site 'leaderboards' showing
-individuals, teams, and categories (countries, CPU types, etc.)
-ranked by credit.
BOINC's credit system is based on a 'reference computer' that can do
@@ -21,6 +18,10 @@ BOINC's credit system is based on a 'reference computer' that can do
BOINC's unit of credit, the Cobblestone 1,
is 1/300 day of CPU time on the reference computer.
+
+Some BOINC projects grant credit only after
+results have been validated.
+
Each project maintains two types of credit:
@@ -37,8 +38,7 @@ Both types of credit (total and recent average)
are maintained for each user and host.
Leader boards
-The PHP pages supplied by BOINC include basic leaderboards:
-top users and hosts, by total and average.
+
BOINC lets projects export the credit-related
parts of their database as XML files.
These XML files can be used to generate
@@ -69,6 +69,10 @@ Each time new credit granted,
the following function is used to update the
recent average credit of the host, user and team:
+#define LOG2 M_LN2
+ // log(2)
+#define SECONDS_IN_DAY (3600*24)
+#define AVG_HALF_LIFE (SECONDS_IN_DAY*7)
// decay an exponential average of credit per day,
// and possibly add an increment for new credit
@@ -95,7 +99,7 @@ void update_average(
avg_time = now;
}
-
+This function is also invoked
1 Named after Jeff Cobb of SETI@home
";
diff --git a/doc/index.html b/doc/index.html
index a6f40808a1..6cafdfd51b 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -48,16 +48,16 @@ Help debug and enhance BOINC software.
Other resources
- Source code (download)
-
-
- Source code (CVS).
+ Source code:
+ download |
+ CVS.
bug-tracking database
Non-English sites about BOINC
+
Contact us
diff --git a/doc/intro.php b/doc/intro.php
index 9ea72f1409..0abf915aff 100644
--- a/doc/intro.php
+++ b/doc/intro.php
@@ -5,6 +5,11 @@ echo"
BOINC is a software platform for distributed computing
using volunteer computer resources.
+
+A paper about BOINC's design goals is here:
+HTML |
+PDF.
+
The BOINC's features fall into several areas:
Resource sharing among independent projects
diff --git a/doc/intro_user.php b/doc/intro_user.php
index f46f8a78ab..da3f6c0676 100644
--- a/doc/intro_user.php
+++ b/doc/intro_user.php
@@ -51,10 +51,13 @@ echo "
This cycle is repeated indefinitely.
BOINC does this all automatically; you don't have to do anything.
+
+
Credit
The project's server keeps track of how much work
your computer has done; this is called credit.
- To ensure that credit is granted fairly, BOINC works as follows:
+ To ensure that credit is granted fairly,
+ most BOINC projects work as follows:
- Each work unit may be sent to several computers.
- When a computer reports a result,
diff --git a/lib/util.C b/lib/util.C
index 974e51d333..d2e388e35e 100755
--- a/lib/util.C
+++ b/lib/util.C
@@ -418,18 +418,17 @@ void safe_strncpy(char* dst, const char* src, int len) {
dst[len-1]=0;
}
+char* time_to_string(time_t x) {
+ static char buf[100];
+ struct tm* tm = localtime(&x);
+ strftime(buf, sizeof(buf)-1, "%Y-%m-%d %H:%M:%S", tm);
+ return buf;
+}
+
// return current time of day as ASCII string, no CR
//
char* timestamp() {
- // time_t now = time(0);
- // char* p = ctime(&now);
- // *(strchr(p, '\n')) = 0;
- // return p;
- static char buf[100];
- time_t now = time(0);
- struct tm* tm = localtime(&now);
- strftime(buf, sizeof(buf)-1, "%Y-%m-%d %H:%M:%S", tm);
- return buf;
+ return time_to_string(time(0));
}
// set by command line
diff --git a/lib/util.h b/lib/util.h
index e1dc47fab3..04d86e1189 100755
--- a/lib/util.h
+++ b/lib/util.h
@@ -49,6 +49,7 @@ extern void canonicalize_master_url(char *url);
extern void safe_strncpy(char*, const char*, int);
#define safe_strcpy(x, y) safe_strncpy(x, y, sizeof(x))
#define safe_strcat(x, y) if (strlen(x)+strlen(y)