Wpis z mikrobloga

Postanowiłem przeprowadzić prostą analizę techniczną kontrowersyjnej kwestii dokładnej daty dodania przez A. Cieślińską apelu pomoc dla Magdaleny Żuk. Problem w generalnym ujęciu jest dość ciekawy, a sprowadza się do ustalenia daty dodania usuniętego facebookowego posta. Czyli jedyne dane jakimi dysponujemy to link do posta.

TL;DR
Nie ma technicznej możliwości by post został dodany przed 30 kwietnia 2017.

Link do apelu A. Cieślińskiej to: https://web.facebook.com/permalink.php?story_fbid=1504278922967275&id=100001555453036, co można zweryfikować np. tu czy tu albo tu (przy czym w tym ostatnim post jest osadzony w treści strony, więc trzeba podejrzeć źródło).

Liczby będące parametrami linku to kolejno:

1504278922967275 - identyfikator posta
100001555453036 - identyfikator użytkownika (https://web.facebook.com/profile.php?id=100001555453036 - otwiera nam profil A. Cieślińskiej)

Teraz ustalmy jak Facebook generuje identyfikatory postów. Tutaj wypowiedź jednego z byłych inżynierów Facebooka.

Istotne dla nas fragmenty tej wypowiedzi:
"Facebook uses a large sharded MySQL setup" - oznacza to, że baza danych Facebooka jest tak naprawdę rozproszoną siecią niezależnych baz danych (przy serwisie tej skali nie ma możliwości by zrobić to inaczej).
"It then uses an **auto_increment MySQL field" - oznacza to, że kolejne identyfikatory pobierane są z sekwencji (np. 0, 1, 2, 3) a nie np. losowo. Jest to bazodanowy standard, zapewniający unikalność identyfikatorów. "Shard" to taka pojedyncza baza danych będąca elementem systemu rozproszonego. Facebook rejestrując użytkowników przypisuje im identyfikatory (liczby) w kolejności (0, 1, 2, 3...) i lokuje w kolejnych "shardach" w miarę ich zapełniania do zdefiniowanej pojemności, np. (upraszczając oczywiście):
shard #1: 0, 1, 2, 3, 4
shard #2: 5, 6, 7, 8, 9
shard #3: 10, 11, 12, 13, 14
itd.

Każdy kolejny shard ma przypisany zakres numeracji postów, np. (znowu upraszczając, te zakresy są oczywiście dużo szersze, np. wyobraźmy sobie, że to nie setki a setki milionów, tak jak pisze w swojej wypowiedzi p. Harrison ;) )
shard #1: 0 - 99
shard #2: 100 - 199
shard #3: 200 - 299
itd.

Po tym krótkim wstępie teoretycznym możemy przejść do analizy ( ͡° ͜ʖ ͡°)

Jeszcze raz identyfikator profilu A. Cieślińskiej:
100001555453036

Możemy spokojnie założyć, że sąsiednie numeracyjnie profile będą należeć do tego samego sharda (przy stumilionowym zakresie znalezienie się na granicy sharda to jak wygrana na loterii), co zresztą za chwilę potwierdzi się empirycznie.

Sprawdźmy zatem profil o kolejnym identyfikatorze z sekwencji, czyli 100001555453037
Debora Cansino z Argentyny, na szczęście publikuje często i - co dla nas ważne - publicznie!
Poniżej lista kilku postów Debory z interesującego nas przedziału dat (lista chronologicznie datami, wg polskiej strefy czasowej, natomiast post A. Cieślińskiej umieściłem zgodnie z numeracją postów):

[https://web.facebook.com/debora.cansino/posts/1504867269575107](https://web.facebook.com/debora.cansino/posts/1504867269575107) - 1 maja 04:50
apel A. Cieślińskiej ------------------------ 1504278922967275
[https://web.facebook.com/debora.cansino/posts/1503374809724353](https://web.facebook.com/debora.cansino/posts/1503374809724353) - 29 kwietnia 17:42
[https://web.facebook.com/debora.cansino/posts/1502899383105229](https://web.facebook.com/debora.cansino/posts/1502899383105229) - 29 kwietnia 05:11
[https://web.facebook.com/debora.cansino/posts/1500709936657507](https://web.facebook.com/debora.cansino/posts/1500709936657507) - 27 kwietnia 05:29

Jak widać, identyfikatory postów rosną chronologicznie, bez dużych skoków wartości, co weryfikuje doświadczalnie zarówno nasz wstęp teoretyczny jak i przynależność obu profili do tego samego sharda.

Weźmy profil o identyfikatorze o niższej wartości niż A. Cieślińskiej (tutaj musiałem się cofnąć o kilka numerów, bo albo profile były usunięte, albo bez publicznych postów w interesującym nas przedziale czasowym):

https://web.facebook.com/profile.php?id=100001555453029 - Kevin Littlejohn, publikuje niezbyt ciekawie, ale często!

Lista postów (sortowanie j.w.):

[https://web.facebook.com/kevin.littlejohn3/posts/1506826146045886](https://web.facebook.com/kevin.littlejohn3/posts/1506826146045886) - 3 maja 01:31
[https://web.facebook.com/kevin.littlejohn3/posts/1505798649481969](https://web.facebook.com/kevin.littlejohn3/posts/1505798649481969) - 2 maja 01:44
[https://web.facebook.com/kevin.littlejohn3/posts/1504575359604298](https://web.facebook.com/kevin.littlejohn3/posts/1504575359604298) - 30 kwietnia 21:23
apel A. Cieślińskiej --------------------------- 1504278922967275
[https://web.facebook.com/kevin.littlejohn3/posts/1503670563028111](https://web.facebook.com/kevin.littlejohn3/posts/1503670563028111) - 29 kwietnia 22:43
[https://web.facebook.com/kevin.littlejohn3/posts/1502768306451670](https://web.facebook.com/kevin.littlejohn3/posts/1502768306451670) - 29 kwietnia 01:27
[https://web.facebook.com/kevin.littlejohn3/posts/1501712693223898](https://web.facebook.com/kevin.littlejohn3/posts/1501712693223898) - 28 kwietnia 02:20 - tutaj widzimy dodatkowo o ile przyrasta numeracja w czasie mniejszym niż 60 sekund (ciekawostka)
[https://web.facebook.com/kevin.littlejohn3/posts/1501712609890573](https://web.facebook.com/kevin.littlejohn3/posts/1501712609890573) - 28 kwietnia 02:20

Połączmy obie listy dorzucając jeszcze kontrolnie 2 posty A. Cieślińskiej:

[https://web.facebook.com/permalink.php?story_fbid=1508347025893798&id=100001555453036](https://web.facebook.com/permalink.php?story_fbid=1508347025893798&id=100001555453036) - 4 maja 14:20 (A. Cieślińska)
[https://web.facebook.com/kevin.littlejohn3/posts/1506826146045886](https://web.facebook.com/kevin.littlejohn3/posts/1506826146045886) - 2 maja 18:31
[https://web.facebook.com/kevin.littlejohn3/posts/1505798649481969](https://web.facebook.com/kevin.littlejohn3/posts/1505798649481969) - 1 maja 18:44
[https://web.facebook.com/debora.cansino/posts/1504867269575107](https://web.facebook.com/debora.cansino/posts/1504867269575107) - 1 maja 04:50
[https://web.facebook.com/kevin.littlejohn3/posts/1504575359604298](https://web.facebook.com/kevin.littlejohn3/posts/1504575359604298) - 30 kwietnia 21:23
apel A. Cieślińskiej --------------------------- 1504278922967275
[https://web.facebook.com/kevin.littlejohn3/posts/1503670563028111](https://web.facebook.com/kevin.littlejohn3/posts/1503670563028111) - 29 kwietnia 22:43
[https://web.facebook.com/debora.cansino/posts/1503374809724353](https://web.facebook.com/debora.cansino/posts/1503374809724353) - 29 kwietnia 17:42
[https://web.facebook.com/debora.cansino/posts/1502899383105229](https://web.facebook.com/debora.cansino/posts/1502899383105229) - 29 kwietnia 05:11
[https://web.facebook.com/kevin.littlejohn3/posts/1502768306451670](https://web.facebook.com/kevin.littlejohn3/posts/1502768306451670) - 29 kwietnia 01:27
[https://web.facebook.com/kevin.littlejohn3/posts/1501712693223898](https://web.facebook.com/kevin.littlejohn3/posts/1501712693223898) - 28 kwietnia 02:20
[https://web.facebook.com/kevin.littlejohn3/posts/1501712609890573](https://web.facebook.com/kevin.littlejohn3/posts/1501712609890573) - 28 kwietnia 02:20
[https://web.facebook.com/debora.cansino/posts/1500709936657507](https://web.facebook.com/debora.cansino/posts/1500709936657507) - 27 kwietnia 05:29
[https://web.facebook.com/permalink.php?story_fbid=1490024274392740&id=100001555453036](https://web.facebook.com/permalink.php?story_fbid=1490024274392740&id=100001555453036) - 18 kwietnia 09:01 (A. Cieślińska)

Z powyższego wynika zatem jednoznacznie, że apel został opublikowany między 29 kwietnia 22:43 a 30 kwietnia 21:23. Nawet ewentualne cofnięcie daty
nie może skutkować zmianą identyfikatora posta, gdyż spowodowałoby to kolizję z wcześniej nadanym identyfikatorem. Spróbujmy na podstawie tych danych oszacować godzinę dodania posta.

Ze screena (zakładając jego autentyczność i zgodność strefy czasowej) wiemy, że post został dodany, na 4 godziny przed 20:17, co w praktyce oznacza zakres: 15:17 - 16:17 (+/- kilka minut), gdyż Facebook stosuje tu zaokrąglenie w dół do pełnej godziny. Przyjmijmy zatem wartość środkową, czyli 15:47, za punkt odniesienia.

Tak wygląda wykres z dodanym liniowym trendem, który jest dość dobrym
przybliżeniem dla rodzaju danych (choć należy tu pamiętać o wahaniach w liczbie dodawanych postów, zarówno na przestrzeni tygodnia, jak i doby - choćby ze względu na zmiany liczby ludności w różnych strefach czasowych).

Zatem data opublikowania posta wyznaczona metodą najmniejszych kwadratów na podstawie powyższych danych to: 30.04.2017 12:58 (
zielony punkt na wykresie), co jest całkiem niezłym oszacowaniem, przy odchyleniu standardowym od trendu wynoszącym ok. 5 godzin. Punkt pomarańczowy to naniesiona data 30.04.2017 15:47, czyli przyjęty wyżej punkt odniesienia.

Punkt
czerwony natomiast, to data 28.04.2017 15:47, zgodna z teoriami spiskowymi. Przyjęcie tej wersji, oznaczałoby niewytłumaczalny "wyskok" w numeracji postów o 2 dni do przodu, po czym powrót do poprzedniej sekwencji. Patrząc z drugiej strony, post o numeracji zaczynającej się od 15042 nie mógł być dodany 28 kwietnia, gdyż istnieje post o identyfikatorze mniejszym od omawianego (początek od 15036) z potwierdzoną datą 29 kwietnia 22:43**.

W załączeniu dodaję przybliżenie interesującego nas fragmentu wykresu.

--

Podsumowując, nie ma technicznej możliwości by post został dodany przed 30 kwietnia 2017.

#magdalenazuk #magdazuk #egipt #csiwykop #facebook #statystyka #analizadanych #teoriespiskowe
1ncogn1t0r - Postanowiłem przeprowadzić prostą analizę techniczną kontrowersyjnej kwe...

źródło: comment_Rc5Cn4O8QSENKybVQFWNza2dukaKEGis.jpg

Pobierz
  • 29
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@horizontal_vertical: Skończyłem pisać oszacowanie na szybko, po czym coś mnie tknęło... Okazuje się, że archive.org zarchiwizował tego posta
( ͡° ͜ʖ ͡°).

Zatem nagranie zostało opublikowane 1 maja w godzinach popołudniowych. Godzina posta w snapshocie archive.org to 17:57, ale nie wiadomo czy Facebook poprawnie określił strefę czasową crawlera (bota archiwizującego). Z posta wynika, że pierwotny ukazał się 1 maja o 23:45.
  • Odpowiedz
@1ncogn1t0r: WTF, webarchive archiwizuje posty na FB?

A możesz mi jakoś prosto wytłumaczyć o co chodzi z botem archiwizującym i strefą czasową?

To 23.45 to bez znaczenia - wpisane '"z palca", to może być data dodania komentarza do video.

No i w ogóle jak się to ma do Twojego oszacowania? zbieżne?
  • Odpowiedz
@horizontal_vertical: No dobra, zawartość elementu strony reprezentującego odnośnik "Wczoraj o 17:57" () wygląda tak:

Wczoraj o 17:57
Pole data-utime zawiera timestamp w reprezentacji uniwersalnej (tzw. epoch time). Konwertując do ludzkiej postaci otrzymujemy 2 maja 2017 02:57:30. I to jest zbieżne z moim oszacowaniem na podstawie ID i godzin dodania innych filmów na stronie Bogatynia24.TV.

Godzina widoczna na archive.org wskazuje, że strefa czasowa bota została rozpoznana jako GMT-7, środkowo-zachodnia część USA (co
  • Odpowiedz
Edytowałem komentarz wyżej dodając archive.org, ale nie, jednak archive.org nie mógłby tutaj niczego przekłamać, bo ten timestamp wynika również, jak już pisałem, z oszacowania na podstawie danych pochodzących bezpośrednio z FB.
  • Odpowiedz