Kaw's Lair Kolejny blog do marudzenia

16Sie/140

Smoki i archiwum wtw

W związku z tym, że w kodzie, który obsługiwał archiwum w wtw żyły smoki, to stwierdziłem iż wypadało by to przepisać. W efekcie wyplułem jakieś 60kiB nowego kodu obsługi i pozbyłem się starego (wraz ze smokami). Teraz mamy tam gargulce. Główna różnicą jest to, że aktualnie wszystkie zapisy są wykonywane całkowicie asynchronicznie, znaczy że okno rozmowy (i konferencji) nie musi czekać aż zapis do archiwum się zakończy. W poprzedniej wersji ten mechanizm działał tylko w stosunku do niektórych wiadomości z rozmów. "Ale ale SQLite jest szybkie!" - A wcale, że nie jest, szczególnie jeśli mamy do zapisu kilkaset wiadomości jakie przybyły z blablera po połączeniu. Poza tym, jeśli mamy komunikator na pendrive, to szybkość zapisu SQLite potrafi człowieka przyprawić o ból głowy. Tak czy inaczej nowy mechanizm kolejek rozwiązuje problemy starego mechanizmu z szybkością działania (w niektórych sytuacjach), problemy z "wystąpił problem z zapisem do archiwum", który pojawił się po dodaniu synchronizacji archiwum GG, usunąłem kompletnie zbędny kod synchronizacji wątków (bo SQLite i tak jest thread safe). Wadą jest większe chwilowe obciążenie pamięci w wypadku natłoku wiadomości, ale to raczej do przeżycia. Ale najważniejsze jest to, że smoki nie moga się tam dziko mnożyć. ;)

5Sie/141

WTW: Synchronizacaja archiwum GG

Dawno nic nie było, cóż, czas coś dodać. Jeśli pleplaliśmy z kimś w pracy i wróciliśmy do domu to do tej pory nie mieliśmy rozmów z pracy zapisanych w domu, i vice versa. Od jakiegoś czasu GG zapisuje nasze rozmowy na swoich serwerach (co mogliście przegapić bo używacie wtw), to daje opcje synchronizacji danych "z chmury" i tych na dysku lokalnym, dzięki temu wszystko może być w jednym miejscu w całości, w sumie to w wielu miejscach (i w całości).
W związku z tym, że poprzednie wersje wtw nie zapisywały danych potrzebnych do wykonania pełnej synchronizacji archiwów, cały mechanizm ma pewne ograniczenia, ograniczenia te są po to aby nie wprowadzić zyliarda duplikatów  wiadomości do naszego archiwum. Dlatego też mechanizm synchronizuje (o ile jest włączony) tylko te wiadomości które dostaliśmy kiedy komunikator był wyłączony, czyli od ostatniego wylogowania do "teraz".

Poza tym synchronizacja:

  • aby działała musi być włączona w 2 miejscach, na serwerach gg (po to aby się wiadomości gdzies zapisywały i skądś mogły być pobrane) oraz w konfiguracji konta gg w wtw (domyślnie włączone);
  • zacznie działać jeśli po pierwsze zainstalowałeś nową wersję wtw i po drugie przynajmniej raz wylogowałeś się z gg;
  • startuje przy otrzymaniu informacji z serwera o tym, że AOL jest tam włączone;
  • ma pewne opóźnienie (kilka minut, znaczy nowe wiadomości nie pojawiają się natychmiast na serwerze gg), jeśli wylogowałeś się z wtw, 5 minut pogadałeś na mobilnym gg i natychmiast włączyłeś wtw - wiadomości mogą się pobrać dopiero przy kolejnym logowaniu;
  • Tekst wiadomości jest pozbawiany formatowań html zgodnie z ustawieniami dla wiadomości otrzymywanych normalnym protokołem komunikacji gg;
  • Kasowanie nie działa, znaczy działa ale nie działa. :D Tj, jeśli rozmowy zostały zaimportowane z GG a potem usunięte w archiwum online - zostaną lokalnie. Tak ma być, to jest po to abyś mógł używać AOL tylko do synchronizacji i nie musiał trzymać wszystkiego w chmurze (wiadomo, paranoje, szpiedzy, zazdrośni kochankowie i takie tam) ;

No i to tyle z ważniejszych informacji.