RMAW - temat ogólny
-
W ramach technicznej analizy problemu przedstawiam poniżej mój punkt widzenia, dlaczego data stworzenia postu powinna być decydująca.
Opierając się na logice kompetytywności rajdu, decydującym czynnikiem na sukces lub porażkę rajdowca powinno być akcja użytkownika. Z oczywistych względów nie jest możliwy pomiar czasu kliknięcia użytkownika, wobec czego decydującym winien być najwcześniejszy moment rejestracji akcji użytkownika.
Istotna część kodu poniżej:
src/posts/create.js L16-38
// This is an internal method, consider using Topics.reply instead const uid = data.uid; const tid = data.tid; const content = data.content.toString(); const timestamp = data.timestamp || Date.now(); const isMain = data.isMain || false; if (!uid && parseInt(uid, 10) !== 0) { throw new Error('[[error:invalid-uid]]'); } if (data.toPid && !utils.isNumber(data.toPid)) { throw new Error('[[error:invalid-pid]]'); } const pid = await db.incrObjectField('global', 'nextPid'); let postData = { pid: pid, uid: uid, tid: tid, content: content, timestamp: timestamp, };
To jest kod odpowiedzialny za utworzenie postu przy odpowiedzi na utworzony temat.
W linii
const timestamp = data.timestamp || Date.now();
tworzony jest timestamp, o ile nie istniał wcześniej (sytuacje inne niż tworzenie nowego posta).Następnie w liniach
if (!uid && parseInt(uid, 10) !== 0) { throw new Error('[[error:invalid-uid]]'); }
oraz
if (data.toPid && !utils.isNumber(data.toPid)) { throw new Error('[[error:invalid-pid]]'); }
Przeprowadzone są walidacje kolejno ID użytkownika oraz ID rodzica.
W kolejnej linii
const pid = await db.incrObjectField('global', 'nextPid');
tworzony jest ID postu, poprzez pobranie globalnego licznika ID postów.Jako że wszystko wykonuje się asynchronicznie, zdarzenia mogą być dowolnie przeplatane przez silnik JavaScriptu. Ponadto dostęp do bazy danych w kontekście globalnego licznika ID postów może być dowolnie obsłużone przez serwer bazy danych.
Wobec powyższego ustawienie znacznika czasowego posta oraz ID posta nie jest transakcyjne i mogą dowolnie się przeplatać, zaś znacznik czasowy posta jest w każdym przypadku wyznaczany pierwszy.
Z uwagi na powyższe moją rekomendacją, przy rzadkiej sytuacji gdzie id posta A jest wcześniejsza niż id posta B, zaś znacznik czasowy posta B jest wcześniejszy niż znacznik czasowy posta A, uwzględnić post B jako wygrywający, jako że posiada wcześniejszy znacznik czasowy.
Analizowany kod dostępny jest na licencji otwartoźródłowej: https://github.com/NodeBB/NodeBB
Commit użyty do analizy: e8ca993aac4b90cfea131050814a19e144a27094 -
@andrzej-fryderyk dokładnie, komisja właśnie na takiej podstawie wydała werdykt. Aczkolwiek biorąc pod uwagę poprzednie rajdy, komisja zobligowała się do sprawdzenia czy nie wystąpił tu również czynnik ludzki, a większość osób i tak nie rozumie takiego bełkotu
-
Wielkie dzięki za fachowe podejście do tematu. A kierowcy niech jadą dalej.
-
@andrzej-fryderyk Uwielbiam.
-
Miło mi poinformować, że na konta kierowców z pierwszej dziesiątki trafiły nagrody wypłacane w edelweisskich klubekach:
- Orjon Surma - 4556Қ
- Helwetyk Romański - 2500Қ
- Pavel Van Der Gibson - 1500Қ
- Izabela Trotylska - 600Қ
- Franklin Garamond - 500Қ
- Heinz-Werner Grüner - 400Қ
- Fatima Popow-Chojnacka - 300Қ
- Andrzej Fryderyk - 200Қ (tradycyjnie wypacono na konto I.Trotylskiej)
- Sheldon Anszlus Robringen (w RMAW Lovelace) - 200Қ
- August von Hochenzollern - 100Қ
Nagroda realna od RMAW - 50 zł dla zwycięzcy @Orjon również została wypłacona.
Z tego co się orientuje to wypłaty nagród od JCM @Joanna-Izabela są w toku.
-
@Joanna-Izabela, raz jeszcze najserdeczniej dziękuję. Szczęść Leocjo! 🤍️
-
Dotarło i do mnie. Dziękuję!
Jak widać, rodzina już rozchwytuje. I dobrze, wszystkiego i tak bym nie zjadł
-
@orjon, @Helwetyk-Romański nie ma z tym problemu
-
@joanna-izabela Nie jestem Helwetykiem
-
Tak jest, osiem dni i widzimy się w stolicy tych małych wysepek, gdzieś pośrodku Pollinu. Nowy Brzeg przywita nas swoim pięknem, majestatem i serdecznością. Ktoś jeszcze nie był? Zgłaszaj się, nie wiesz ile straciłeś!
Dnia dzisiejszego wysłaliśmy listowne zaproszenia zachęcające do udziału w 6. Rajdzie Leocji. Ogromna część z was odpowiedziała już na nie (tradycyjnie poprzez discorda), za co serdecznie dziękuję. Liczba uczestników już jest zadowalająca, ale to na pewno jeszcze nie wszystkie zgłoszenia.
Osoby, które nie otrzymały takowych uprzejmie proszę o samodzielne stawienie się do mnie (via discord, pw forum Edelweiss, pw forum Leocja lub w dziale RMAW w jakimkolwiek państwie, gdzie rozsyłam "odliczanie" do rajdu), znacznie ułatwiło by mi to pracę.Pytacie także o trasę rajdu - a to już Wam pokazuje gdzie to znaleźć. Do przejrzenia oczywiście w Leocji i tradycyjnie w Edelweiss. Aktualizacja w odcinki specjalne już od jutra!
Jeśli chciałbyś przekazać kilka grosików w ramach sponsoringu Rajdu Leocji, to masz jeszcze szansę. Wystarczy, że wpłacisz równowartość minimum 1000 klubeków edelwajskich na konto (uprzejmie proszę o poinformowanie mnie osobiście) do 20 października włącznie:
Rajdowe Mistrzostwa Austro-Węgier w Leocji
LC625291UWAGA: Nadal trwają prace nad ulepszeniem regulaminu RMAW! Wkrótce ogłosimy ostateczną wersję. Bądź wyrozumiały i nie bój się pytać co nowego.