Merge branch 'master' into translation

This commit is contained in:
Axel Uhl committed 2023-07-24 23:07:28 +02:00
commit 605030e2fc
21 files changed
+52 -13

No files matched your search

+7 -1
View File
@@ -36,7 +36,13 @@
#Define ARCHIVE_IP 172.31.21.139
#Define ARCHIVE_IP 172.31.23.47
#Define ARCHIVE_IP 172.31.20.62
Define ARCHIVE_IP 172.31.20.131
#Define ARCHIVE_IP 172.31.20.131
#Define ARCHIVE_IP 172.31.47.208
#Define ARCHIVE_IP 172.31.41.14
#Define ARCHIVE_IP 172.31.34.59
#Define ARCHIVE_IP 172.31.46.41
#Define ARCHIVE_IP 172.31.44.232
Define ARCHIVE_IP 172.31.46.28
<Macro ArchiveRewrite>
Use Rewrite ${ARCHIVE_IP} 8888
+8 -4
View File
@@ -17,12 +17,16 @@
## SERVER STATUS
Use Status ec2-54-229-94-254.eu-west-1.compute.amazonaws.com internal-server-status
Use Status 172.31.16.242 internal-server-status
Use Status 172.31.42.171 internal-server-status
Use Status 127.0.0.1 internal-server-status
# Uncomment the following and update the internal IP to what your Archive server candidate is
#Use Plain archive-failover.sapsailing.com 172.31.23.135 8888
Use Plain archive-candidate.sapsailing.com 172.31.20.131 8888
Use Plain archive-failover.sapsailing.com 172.31.46.41 8888
Use Plain archive-candidate.sapsailing.com 172.31.46.41 8888
Use Plain paris2024-candidate.sapsailing.com 172.31.15.188 8888
Use Plain kw2023-master.sapsailing.com 172.31.43.163 8896
Use Plain my-master.sapsailing.com 172.31.24.34 8888
@@ -47,7 +51,7 @@ Use Event-ARCHIVE birthday10.sapsailing.com c45be9c1-7324-4524-8843-4746ab5e7c2a
Use Series-ARCHIVE austrianleague2021.sapsailing.com e7d48cfd-591e-45c3-afeb-7f32f0a7bbb5
# SCL 2021
Use Event-ARCHIVE scl2021.sapasiling.com f98b7dc9-1d54-4c14-a07d-85c4cb1533ba
Use Event-ARCHIVE scl2021.sapsailing.com f98b7dc9-1d54-4c14-a07d-85c4cb1533ba
# French League 2021
Use Series-ARCHIVE frenchleague2021.sapsailing.com 5164ba5f-6f3b-4190-9a88-e3de1995dc53
@@ -0,0 +1 @@
Use Home-ARCHIVE SRV.sapsailing.com
@@ -0,0 +1 @@
Use Event-ARCHIVE allianzregatta2023.sapsailing.com cd2b4bf8-cca4-4653-9ef0-763c7891dccf
@@ -0,0 +1 @@
Use Event-ARCHIVE helgacup2023.sapsailing.com c8c6c1a8-048f-49a0-b5b9-c713d80e96cb
@@ -0,0 +1 @@
Use Event-ARCHIVE kw2023.sapsailing.com ce287433-1c18-4215-92ae-32c741229f07
@@ -0,0 +1 @@
Use Event-ARCHIVE paris2024.sapsailing.com b8220cee-9ec7-4640-b8d8-f40e079456d5
@@ -0,0 +1 @@
Use Event-ARCHIVE pohodovaregata-23.sapsailing.com fce723aa-f356-4c2f-8f2d-c34588ef91c4
@@ -0,0 +1 @@
Use Home-ARCHIVE rheinwoche2019.sapsailing.com
@@ -0,0 +1 @@
Use Event-ARCHIVE sof2023.sapsailing.com 67cea8b6-6f56-4d73-949e-383aeffa12f7
@@ -0,0 +1 @@
Use Event-ARCHIVE tor2023.sapsailing.com f8d71906-72c5-468a-a001-1aa9c756af40
+1 -1
View File
@@ -13,4 +13,4 @@ RUN wget -O /tmp/rds.pem https://s3.amazonaws.com/rds-downloads/rds-combined-ca-
&& /opt/sapjvm_8/bin/keytool -importcert -alias AWSRDS -file /tmp/rds.pem -keystore /opt/sapjvm_8/jre/lib/security/cacerts -noprompt -storepass changeit \
&& rm /tmp/rds.pem
RUN wget -O /home/sailing/WindEstimationModelsTraining.jar https://static.sapsailing.com/WindEstimationModelsTraining.jar
CMD exec java "${MEMORY}" -Dmongo.uri="${MONGODB_URI}" -XX:+UseParallelGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump/ -Xlog:gc*=info,gc+region*=info,gc+ergo*=info,gc+humongous*=info,gc+liveness=trace:file=logs/gc.log:time,level,tags:filecount=10,filesize=100000000 -jar WindEstimationModelsTraining.jar "${BEARER_TOKEN}" ${TRAINING_DATA_PERCENT}
CMD exec java "${MEMORY}" -Dmongo.uri="${MONGODB_URI}" -XX:+UseParallelGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=dump/ -XX:+PrintAdaptiveSizePolicy -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -Xloggc:logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -jar WindEstimationModelsTraining.jar "${BEARER_TOKEN}" ${TRAINING_DATA_PERCENT}
@@ -1,3 +1,4 @@
eclipse.preferences.version=1
encoding//resources/stringmessages/Sailing_StringMessages.properties=UTF-8
encoding//resources/stringmessages/Sailing_StringMessages_de.properties=UTF-8
encoding/<project>=UTF-8
@@ -133,6 +133,7 @@ RelativeDistanceToAdvantageousEndOfLineAtStartOfRace=Relative Distance to Advant
windFrom=True Wind Direction (TWD)
windSpeedKnots=True Wind Speed (kts)
speedInKnots=Speed (kts)
speedInFullKnots=Speed in Full Knots (kts)
bearing=Direction (°T)
WindTrack=Wind Track
timeSpentFoiling=Time spent foiling
@@ -131,6 +131,7 @@ WindSourceName=Name der Windmessreihe
windFrom=Wind aus Richtung (TWD)
windSpeedKnots=Wahre Windgeschwindigkeit (kn)
speedInKnots=Fahrt (kn)
speedInFullKnots=Fahrt in ganzen Knoten (kn)
bearing=Richtung (°)
WindTrack=Windmessreihe
timeSpentFoiling=Zeit auf Foils
@@ -90,7 +90,6 @@ public interface ScoringScheme extends Serializable {
* may be required in case a "penalty" such as a redress needs to inspect the scores of other race
* columns as well; implementations need to take great care not to cause endless recursions by
* naively asking the leaderboard for scores which would recurse into this method
* @param uncorrectedScoreProvider TODO
*/
Double getPenaltyScore(RaceColumn raceColumn, Competitor competitor, MaxPointsReason maxPointsReason,
Integer numberOfCompetitorsInRace, NumberOfCompetitorsInLeaderboardFetcher numberOfCompetitorsInLeaderboardFetcher,
@@ -66,7 +66,7 @@ public class LowPoint extends AbstractScoringSchemeImpl {
NumberOfCompetitorsInLeaderboardFetcher numberOfCompetitorsInLeaderboardFetcher, TimePoint timePoint,
Leaderboard leaderboard, Supplier<Double> uncorrectedScoreProvider) {
Double result;
if (maxPointsReason == MaxPointsReason.STP) {
if (maxPointsReason == MaxPointsReason.STP) { // TODO bug5873: this is where other incremental IRMs need to be considered, too, with configurable increments
final Double uncorrectedScore = uncorrectedScoreProvider.get();
result = uncorrectedScore == null ? null : uncorrectedScore + 1.0;
} else if (numberOfCompetitorsInRace == null || raceColumn.hasSplitFleetContiguousScoring()) {
@@ -14,6 +14,7 @@ import java.util.logging.Logger;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.Course;
import com.sap.sailing.domain.base.RaceColumn;
import com.sap.sailing.domain.base.RaceColumnInSeries;
import com.sap.sailing.domain.common.MaxPointsReason;
import com.sap.sailing.domain.leaderboard.Leaderboard;
import com.sap.sailing.domain.leaderboard.NumberOfCompetitorsInLeaderboardFetcher;
@@ -470,7 +471,16 @@ public class ScoreCorrectionImpl implements SettableScoreCorrection {
Integer result;
final TrackedRace trackedRace = raceColumn.getTrackedRace(competitor);
if (trackedRace == null) {
result = numberOfCompetitorsInLeaderboardFetcher.getNumberOfCompetitorsInLeaderboard();
final int estimatedSizeOfLargestFleet;
final int numberOfCompetitorsInLeaderboard = numberOfCompetitorsInLeaderboardFetcher.getNumberOfCompetitorsInLeaderboard();
if (raceColumn instanceof RaceColumnInSeries) {
final int numberOfFleets = Util.size(((RaceColumnInSeries) raceColumn).getSeries().getFleets());
estimatedSizeOfLargestFleet = numberOfCompetitorsInLeaderboard / numberOfFleets
+ (int) Math.signum(numberOfCompetitorsInLeaderboard % numberOfFleets); // round up
} else {
estimatedSizeOfLargestFleet = numberOfCompetitorsInLeaderboard;
}
result = estimatedSizeOfLargestFleet;
} else {
result = Util.size(trackedRace.getRace().getCompetitors());
}
@@ -15,6 +15,8 @@
<li>Bug fix: tracked races connected to more than one leaderboard column at the same time
will now send their competitor and race status updates to all those column's race logs.
This in particular fixes the special iQFOil set-up with their marathon races.</li>
<li>Added speed in full knots (rounded) as a dimension to the GPS fixes in Data Mining.
This can be used, e.g., to filter for outliers such as capsized or towed boats.</li>
</ul>
<h5 class="articleSubheadline">June 2023</h5>
<ul class="bulletList">
@@ -175,8 +175,8 @@ public class ManeuverAndWindImporter {
+ " competitor tracks\n\t" + importStatistics.maneuversCount
+ " complete maneuver curves with estimation data\n\t" + importStatistics.racesWithHighQualityWindData
+ " races with high quality wind data\n\t" + importStatistics.ignoredRegattas
+ " ignored regatta due to error\n\t" + importStatistics.ingoredRaces
+ " ingored races due to error\n--------------------------------------------\nTime passed: "
+ " ignored regatta due to error\n\t" + importStatistics.ignoredRaces
+ " ignored races due to error\n--------------------------------------------\nTime passed: "
+ duration.toHours() + "h " + (duration.toMinutes() - duration.toHours() * 60) + "m "
+ (duration.get(ChronoUnit.SECONDS) % 60) + "s");
}
@@ -216,7 +216,7 @@ public class ManeuverAndWindImporter {
importRace(regattaName, trackedRaceName, importStatistics, bearerToken);
} catch (Exception e) {
synchronized (importStatistics) {
importStatistics.ingoredRaces += 1;
importStatistics.ignoredRaces += 1;
}
String extraLog = "";
if (e instanceof HttpClientException) {
@@ -415,7 +415,7 @@ public class ManeuverAndWindImporter {
private int competitorTracksCount = 0;
private int maneuversCount = 0;
private int ignoredRegattas = 0;
private int ingoredRaces = 0;
private int ignoredRaces = 0;
private int racesWithHighQualityWindData = 0;
}
@@ -2,6 +2,7 @@ package com.sap.sse.common;
import java.io.Serializable;
import com.sap.sse.datamining.annotations.Dimension;
import com.sap.sse.datamining.annotations.Statistic;
/**
@@ -77,6 +78,11 @@ public interface Speed extends Comparable<Speed>, Serializable {
@Statistic(messageKey="speedInKnots", resultDecimals=2)
double getKnots();
@Dimension(messageKey="speedInFullKnots")
default int getKnotsFloored() {
return (int) Math.round(getKnots());
}
double getMetersPerSecond();