From 279a400bdc7df18a319f4cf7b686db3fd8717eaa Mon Sep 17 00:00:00 2001 From: Generic Wiki User Date: Sun, 23 Jul 2023 22:21:21 +0000 Subject: [PATCH 1/5] updated the configuration/httpd/conf.d contents --- configuration/httpd/conf.d/000-macros.conf | 8 +++++++- configuration/httpd/conf.d/001-events.conf | 12 ++++++++---- configuration/httpd/conf.d/SRV.sapsailing.com.conf | 1 + .../conf.d/allianzregatta2023.sapsailing.com.conf | 1 + .../httpd/conf.d/helgacup2023.sapsailing.com.conf | 1 + .../httpd/conf.d/kw2023.sapsailing.com.conf | 1 + .../httpd/conf.d/paris2024.sapsailing.com.conf | 1 + .../conf.d/pohodovaregata-23.sapsailing.com.conf | 1 + .../httpd/conf.d/rheinwoche2019.sapsailing.com.conf | 1 + .../httpd/conf.d/sof2023.sapsailing.com.conf | 1 + .../httpd/conf.d/tor2023.sapsailing.com.conf | 1 + 11 files changed, 24 insertions(+), 5 deletions(-) mode change 100755 => 100644 configuration/httpd/conf.d/000-macros.conf create mode 100644 configuration/httpd/conf.d/SRV.sapsailing.com.conf create mode 100644 configuration/httpd/conf.d/allianzregatta2023.sapsailing.com.conf create mode 100644 configuration/httpd/conf.d/helgacup2023.sapsailing.com.conf create mode 100644 configuration/httpd/conf.d/kw2023.sapsailing.com.conf create mode 100644 configuration/httpd/conf.d/paris2024.sapsailing.com.conf create mode 100644 configuration/httpd/conf.d/pohodovaregata-23.sapsailing.com.conf create mode 100644 configuration/httpd/conf.d/rheinwoche2019.sapsailing.com.conf create mode 100644 configuration/httpd/conf.d/sof2023.sapsailing.com.conf create mode 100644 configuration/httpd/conf.d/tor2023.sapsailing.com.conf diff --git a/configuration/httpd/conf.d/000-macros.conf b/configuration/httpd/conf.d/000-macros.conf old mode 100755 new mode 100644 index 2da32d47310..21e5f1a41b1 --- a/configuration/httpd/conf.d/000-macros.conf +++ b/configuration/httpd/conf.d/000-macros.conf @@ -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 Use Rewrite ${ARCHIVE_IP} 8888 diff --git a/configuration/httpd/conf.d/001-events.conf b/configuration/httpd/conf.d/001-events.conf index d81bf2c2433..6bbac118238 100644 --- a/configuration/httpd/conf.d/001-events.conf +++ b/configuration/httpd/conf.d/001-events.conf @@ -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 diff --git a/configuration/httpd/conf.d/SRV.sapsailing.com.conf b/configuration/httpd/conf.d/SRV.sapsailing.com.conf new file mode 100644 index 00000000000..348348e00fa --- /dev/null +++ b/configuration/httpd/conf.d/SRV.sapsailing.com.conf @@ -0,0 +1 @@ +Use Home-ARCHIVE SRV.sapsailing.com diff --git a/configuration/httpd/conf.d/allianzregatta2023.sapsailing.com.conf b/configuration/httpd/conf.d/allianzregatta2023.sapsailing.com.conf new file mode 100644 index 00000000000..c1ad51ad84f --- /dev/null +++ b/configuration/httpd/conf.d/allianzregatta2023.sapsailing.com.conf @@ -0,0 +1 @@ +Use Event-ARCHIVE allianzregatta2023.sapsailing.com cd2b4bf8-cca4-4653-9ef0-763c7891dccf diff --git a/configuration/httpd/conf.d/helgacup2023.sapsailing.com.conf b/configuration/httpd/conf.d/helgacup2023.sapsailing.com.conf new file mode 100644 index 00000000000..7da14a0c45a --- /dev/null +++ b/configuration/httpd/conf.d/helgacup2023.sapsailing.com.conf @@ -0,0 +1 @@ +Use Event-ARCHIVE helgacup2023.sapsailing.com c8c6c1a8-048f-49a0-b5b9-c713d80e96cb diff --git a/configuration/httpd/conf.d/kw2023.sapsailing.com.conf b/configuration/httpd/conf.d/kw2023.sapsailing.com.conf new file mode 100644 index 00000000000..2b6f40e86e5 --- /dev/null +++ b/configuration/httpd/conf.d/kw2023.sapsailing.com.conf @@ -0,0 +1 @@ +Use Event-ARCHIVE kw2023.sapsailing.com ce287433-1c18-4215-92ae-32c741229f07 diff --git a/configuration/httpd/conf.d/paris2024.sapsailing.com.conf b/configuration/httpd/conf.d/paris2024.sapsailing.com.conf new file mode 100644 index 00000000000..77863dde8c3 --- /dev/null +++ b/configuration/httpd/conf.d/paris2024.sapsailing.com.conf @@ -0,0 +1 @@ +Use Event-ARCHIVE paris2024.sapsailing.com b8220cee-9ec7-4640-b8d8-f40e079456d5 diff --git a/configuration/httpd/conf.d/pohodovaregata-23.sapsailing.com.conf b/configuration/httpd/conf.d/pohodovaregata-23.sapsailing.com.conf new file mode 100644 index 00000000000..b306384f521 --- /dev/null +++ b/configuration/httpd/conf.d/pohodovaregata-23.sapsailing.com.conf @@ -0,0 +1 @@ +Use Event-ARCHIVE pohodovaregata-23.sapsailing.com fce723aa-f356-4c2f-8f2d-c34588ef91c4 diff --git a/configuration/httpd/conf.d/rheinwoche2019.sapsailing.com.conf b/configuration/httpd/conf.d/rheinwoche2019.sapsailing.com.conf new file mode 100644 index 00000000000..7a72205d553 --- /dev/null +++ b/configuration/httpd/conf.d/rheinwoche2019.sapsailing.com.conf @@ -0,0 +1 @@ +Use Home-ARCHIVE rheinwoche2019.sapsailing.com diff --git a/configuration/httpd/conf.d/sof2023.sapsailing.com.conf b/configuration/httpd/conf.d/sof2023.sapsailing.com.conf new file mode 100644 index 00000000000..89fb0396077 --- /dev/null +++ b/configuration/httpd/conf.d/sof2023.sapsailing.com.conf @@ -0,0 +1 @@ +Use Event-ARCHIVE sof2023.sapsailing.com 67cea8b6-6f56-4d73-949e-383aeffa12f7 diff --git a/configuration/httpd/conf.d/tor2023.sapsailing.com.conf b/configuration/httpd/conf.d/tor2023.sapsailing.com.conf new file mode 100644 index 00000000000..2a39701decc --- /dev/null +++ b/configuration/httpd/conf.d/tor2023.sapsailing.com.conf @@ -0,0 +1 @@ +Use Event-ARCHIVE tor2023.sapsailing.com f8d71906-72c5-468a-a001-1aa9c756af40 From 4e5c9ecb75c91c2e5820c724ebdc572c5e44b79f Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 24 Jul 2023 11:42:32 +0200 Subject: [PATCH 2/5] fixed logging options for Java8-based windestimation Docker image --- docker/Dockerfile_windestimation | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile_windestimation b/docker/Dockerfile_windestimation index d4c1c73737f..18334f75f93 100755 --- a/docker/Dockerfile_windestimation +++ b/docker/Dockerfile_windestimation @@ -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} From d921d8e133a6b668712fe99969f9a229c838c1fc Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 24 Jul 2023 17:00:06 +0200 Subject: [PATCH 3/5] improve guessing number of competitors in race in case of split fleets --- .../domain/leaderboard/impl/ScoreCorrectionImpl.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/ScoreCorrectionImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/ScoreCorrectionImpl.java index d7bf12019e7..a8e27cf395d 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/ScoreCorrectionImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/ScoreCorrectionImpl.java @@ -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()); } From 742fe426eb7d1ab70ad261297dff6a6c08514301 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 24 Jul 2023 17:00:26 +0200 Subject: [PATCH 4/5] fixed typo (ingored-->ignored) --- .../com/sap/sailing/domain/leaderboard/ScoringScheme.java | 1 - .../com/sap/sailing/domain/leaderboard/impl/LowPoint.java | 2 +- .../data/importer/ManeuverAndWindImporter.java | 8 ++++---- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/ScoringScheme.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/ScoringScheme.java index c3aa3ba5733..b9ed933e9fd 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/ScoringScheme.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/ScoringScheme.java @@ -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, diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/LowPoint.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/LowPoint.java index e6064873e49..ed08f5e6f78 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/LowPoint.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/LowPoint.java @@ -66,7 +66,7 @@ public class LowPoint extends AbstractScoringSchemeImpl { NumberOfCompetitorsInLeaderboardFetcher numberOfCompetitorsInLeaderboardFetcher, TimePoint timePoint, Leaderboard leaderboard, Supplier 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()) { diff --git a/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/data/importer/ManeuverAndWindImporter.java b/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/data/importer/ManeuverAndWindImporter.java index 4367fe12c8b..a17611274c1 100644 --- a/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/data/importer/ManeuverAndWindImporter.java +++ b/java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/data/importer/ManeuverAndWindImporter.java @@ -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; } From ebcd49140073f62e6b4bf44726cfbfebdecb920f Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 24 Jul 2023 17:17:20 +0200 Subject: [PATCH 5/5] bug5875: offer speed in full knots as dimension on GPS fix --- .../.settings/org.eclipse.core.resources.prefs | 1 + .../stringmessages/Sailing_StringMessages.properties | 1 + .../stringmessages/Sailing_StringMessages_de.properties | 1 + .../places/whatsnew/resources/SailingAnalyticsNotes.html | 2 ++ java/com.sap.sse.common/src/com/sap/sse/common/Speed.java | 6 ++++++ 5 files changed, 11 insertions(+) diff --git a/java/com.sap.sailing.datamining/.settings/org.eclipse.core.resources.prefs b/java/com.sap.sailing.datamining/.settings/org.eclipse.core.resources.prefs index dcc9726ad0d..ff1c3787b9e 100644 --- a/java/com.sap.sailing.datamining/.settings/org.eclipse.core.resources.prefs +++ b/java/com.sap.sailing.datamining/.settings/org.eclipse.core.resources.prefs @@ -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/=UTF-8 diff --git a/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages.properties b/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages.properties index c851ed14be4..3f3710dab4f 100644 --- a/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages.properties +++ b/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages.properties @@ -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 diff --git a/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages_de.properties b/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages_de.properties index e38a60b334a..2b3d2049c45 100755 --- a/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages_de.properties +++ b/java/com.sap.sailing.datamining/resources/stringmessages/Sailing_StringMessages_de.properties @@ -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 diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html index c75f22fac46..c7619f808c8 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html @@ -15,6 +15,8 @@
  • 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.
  • +
  • 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.
  • June 2023
      diff --git a/java/com.sap.sse.common/src/com/sap/sse/common/Speed.java b/java/com.sap.sse.common/src/com/sap/sse/common/Speed.java index 4cb7b128263..ab966fd1169 100755 --- a/java/com.sap.sse.common/src/com/sap/sse/common/Speed.java +++ b/java/com.sap.sse.common/src/com/sap/sse/common/Speed.java @@ -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, Serializable { @Statistic(messageKey="speedInKnots", resultDecimals=2) double getKnots(); + + @Dimension(messageKey="speedInFullKnots") + default int getKnotsFloored() { + return (int) Math.round(getKnots()); + } double getMetersPerSecond();