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.

4Lut/1422

Nowe logo WTW

W zasadzie proste pytanie do publiczności, która grafika powinna wylądować jako logo/ikonka, do wyboru mamy:

 

logoIcon48 Modernistyczne

ic_av_logo4 Pogrzebowe

ic_av Dziwne

logoIcon48[1] Starożytne

 

Glosowanie zamknięte, i patrząc na wyniki... zrobię dogrywkę, ale w innym stylu (o czym oczywiście będzie info). ;)

This poll is closed! Poll activity:
start_date 04/02/2014 18:33:59
end_date 04/02/2014 22:10:10
Poll Results:
Która grafika powinna zostać nowym logiem?
Zakres tematyczny: WTW 22 Komentarze
15Lis/130

Nowości w WTW: DANE/TLSA

RFC 6698 - Jak wiemy (albo nie) aby nie dręczyć użytkowników pytaniami o prawidłowość certyfikatów trzeba albo dodać go do certyfikatów zaufanych albo upolować certyfikat podpisany przez jakąś trzecią firmę, która taki status posiada. Problemy z takim podejściem mogą być takie:

  • Odpłatność za taki certyfikat (chociaż spełniając pewne warunki można taki cert mieć za darmo);
  • W momencie ataku na centrum certyfikacji atakujący mogą sobie wygenerować zaufane certyfikaty z dowolnymi nazwami i tak przechwytywać szyfrowany ruch;
  • Można wygenerować własny certyfikat, z nazwą serwera którego ruch chcemy łapać, co prawda na ogół spowoduje to pokazanie komunikatu ostrzgawczego, ale spójrzmy prawdzie w oczy, większość użytkowników po prostu zaakceptuje to co dostał;

To od czego jest DANE (DNS-Based Authentication of Named Entities)? W sumie do 2 rzeczy. Po pierwsze dzięki DANE zbędne staje się używanie certyfikatów firm trzecich. Można sobie samemu wygenerować certyfikat i ustawić w DNSie jako certyfikat zaufany dla połączenia na danym porcie/protokole. Oraz - jeśli używamy z jakichś powodów zewnętrznego certyfikatu - poinformować klienta, że ten konkretny wydany nam certyfikat jest prawidłowy i że jeśli w połączeniu TLS znajdzie się jakiś inny - jest to niebezpieczne.

DANE (szczególnie z DNS-SEC) podnosi bezpieczeństwo połączeń TLS, zakładając że serwer ma wpisy DANE w DNS i klient obsługuje ten właśnie RFC. A WTW jest (chyba) pierwszym klientem, który ten protokół implementuje.

10Kwi/1314

AndroidLink i WTW

Kaw jak wiadomo, jest człowiekiem leniwym, i co za tym idzie - lubi ułatwiać sobie życie. A że mój telefon na ogół jest wyciszony całkowicie (a co mi będzie przeszkadzał), często zdarzało się przegapić, że przyszła jakaś wiadomość. Poza tym, odpisywanie na wiadomości na dowolnym telefonie, który nie jest BlackBerry jest dość tak, mało wygodne. I tak powstał smsBlue. To antyczne czasy, kiedy telefony miały coś takiego jak modem. Modemy te mają możliwość wykorzystania komend AT do wysyłania/odbierania wiadomości SMS. A dlaczego Blue? Bo działało to oryginalnie po bluetooth, a potem także po IrDA (podczerwień) i standardowych portach COM. Niestety smartfony nie są na tyle smart aby taki modem udostępniać. Ale na smartfonach można instalować aplikacje, i tak powstał AndroidLink.

I tak powstał AndroidLink, czyli coś co po podłączeniu do komunikatora (WTW) i Androidowego telefonu informuje nas o przychodzących:

  • Wiadomościach SMS;
  • Wiadomościach MMS (tekst i grafika);
  • Rozmowach telefonicznych;
  • Raportach dostarczenia wiadomości SMS;

Do tego wysyłanie wiadomości SMS do wielu odbiorców na raz (można spamować na święta znajomych), oraz:

  • Synchronizację schowka urządzeń (tylko tekst). Co jest prostą metodą na nieprzepisywanie tekstu z telefonu, wystarczy skopiować co chcemy do schowka, i magicznie mamy to na kompie (i w drugą stronę);
  • Informację o tym co telefon robi, stan sygnału, poziomu baterii i ile miejsca nam zostało;

Działa to po socketach sieciowych, a więc albo po WiFi albo po Bluetooth. Preferowany jest bluetooth bo w przeciwieństwie do WiFi nie drenuje baterii jak diabeł, nie ma dużego zasięgu i z zasady jest zabezpieczony i zaszyfrowany. Ale jak ktoś stale i tak używa WiFi to czemu by nie? Połączenie może być zabezpieczone hasłem, jednak sam transport danych nie jest (na razie) niczym zabezpieczony, dlatego lepiej nie używać tego poza siecią lokalną, jednak jak ktoś się uprze może swój telefon monitorować nawet przez sieć 3G.

AndroidLink na Androida dostępny jest w Google Play, a jak ktoś ma awersję do tego sklepu może sobie alternatywnie pobrać apk tutaj. Do kompletu potrzebujemy także wtyczki do komunikatora. (na 2013-04-10 najlepiej by było jeśli i komunikator i wtyczka będa pochodziły z minefielda) Jeśli komputer i telefon są sparowane po BT, wystarczy we wtyczce z listy wybrać "bluetooth" oraz odpowiednie urządzenie. W wypadku internetu mamy dwie opcje, pierwsza to ręczne wpisanie IP telefonu w opcje, ale musimy znać IP. Aplikacja na telefonie podaje co prawda jakie adresy IP urządzenie ma, jednak czasem ciężko zgadnąć, który nadaje się najbardziej:

2013-04-10 11.40.18

Ale nie trwóżmy się, mamy drugą opcję. Wystarczy sobie tapnąć druga opcję w sekcji "Access" -> "Widoczność urządzenia" i będziemy mieli około 2 minut na skorzystanie z automatycznego wykrywania telefonu w opcjach Linka na PC. (zakładając, że są w tej samej sieci). ;)

Jeśli poprawnie wszystko ustawiliśmy, i nie wyłączyliśmy informacji o połączeniu/rozłączeniu telefonu to w głównym oknie WTW powinniśmy móc przełączyć się na tę zakładkę:

_wtw_00227_wtw_00251.

W momencie przychodzącego SMS/MMSa dostajemy o tym informację za pomocą standardowego powiadomienia + jeśli chcemy może być ona umieszczona także na karcie ze zdarzeniami telefonicznymi, i wygląda to wtedy tak:

_wtw_00250.

W wypadku SMSów obsługiwany jest tylko tekst. W wypadku MMSów obsługiwane są też załączniki, acz inne niż grafika wyświetlane są w postaci linka. Jednakże MMSy stanowią pewien problem. API Androida nie ma żadnego SDK do obsługi MMSów, więc ich wykrywanie/pobieranie zrobione jest dość niestandardową metodą. Wtyczka ręcznie parsuje SMIL, i nie implementuje tego standardu całkowicie, więc o ile w większości wypadków wszystko powinno być ok, to czasem, jeśli nadawca ma jakiś nietypowo składający SMIL telefon, mogą wystąpić jakieś nieścisłości względem tego jak wiadomość pokazuje nam telefon.

W związku z brakiem odpowiedniego API, jedyne co możemy wysłać to SMSy, to za pomocą wbudowanych w WTW mechanizmów wysyłki, więc nie powinno sprawiać problemów. Wszystkie potrzebne rzeczy ustawiają się w tym względzie same, jedyne co musimy wpisać to numer telefonu, treść i jeśli mamy jakieś inne bramki niż AndroidLink ustawione - wybrać transport. Obie części aplikacji posiadają AutoUpdate (wersja na Androida tylko przez Google Play), wersja na PC aktualizuje się do wersji "nie-nightly";

29Paź/129

Nowości w WTW: Statystyki archiwum

Nie ma w zasadzie wiele do opisywania. Archiwum zyskało nowa kartę zwaną "Statystyka" gdzie wyświetlone są względnie proste informacje statystyczne o tym z kim i ile gadamy. Niech obraz zastąpi tysiące słów:

Loginy poukrywane ab chronić niewinnych. :D

21Paź/128

Nowości w WTW: Kreator początkowy

Przy zakładaniu profilu od wersji 0.9.12 dostajemy kreator który pozwoli nam na wybranie potrzebnych nam wtyczek, sieci i podanie danych początkowych;

Z ciekawszych rzeczy, potrafi automatycznie pobrać wtyczki, których nie mamy zainstalowanych (o ile są dostarczone w postaci paczuszek "wtwExtension"), tj jeśli jakiś autor zrobi bardzo popularną (i przydatną) wtyczkę to ma szanse na to aby użytkownik dostawał opcję jej instalacji przy tworzeniu profilu. Oczywiście jeśli chcemy mieć wtyczkę jakiej nie mamy na dyski potrzebne jest połączenie z internetem.

Do tego dochodzi zestaw API umożliwiający ich używania, dzięki czemu wtyczki (jak robi to na przykład wtyczka XMPP) mogą ich używać przy zakładaniu nowego konta (z poziomu sekcji "Sieci" -> "Konta"); Czyli szybko, chyba łatwo i może przyjemnie.

21Paź/128

Nowości w WTW: Informacje o linkach

Aby za wiele nie opisywać, ujmę to graficznie, kiedy przychodzi do nas link, komunikator robi coś takiego:

Czyli podaje informacje o tym co się kryje pod linkiem, działa to dla plików (podaje rozmiar i typ pliku), grafik (podaje rozmiar, kilka danych z exif i miniaturkę) oraz opcjonalnie dla stron www (tytuł, opis i miniaturkę). Ostatnia opcja jest domyślnie wyłączona bo niestety aby zrobić miniaturkę trzeba gdzieś trzymać ukryta przeglądarkę (w tym wypadku IE) co oczywiście zjada zasoby (ale jak uważacie, że się opłaca - proszę bardzo). Z drugiej strony miniaturyzowanie zdjęć zjada zasoby tylko w momencie robienia miniaturki. ;)

Funkcja zainspirowana facebookiem.

 

21Paź/121

Nowości w WTW: Znaczniki w archiwum

Od którejś nightly WTW wprowadza nową funkcje, znaczniki w archiwum. Będzie ona dostępna od najbliższej bety/stabilnej. Chyba, że ktoś jest niecierpliwy to może dopaść nightly. Ale co to jest...

Coś teoretycznie ułatwiającego wyszukiwanie. Na początek mamy nową pozycję w menu okna rozmowy "dodaj znacznik...", spowoduje to dodanie do rozmowy (na jej aktualnym końcu) znacznika, który będzie widoczny na specjalnej liście w archiwum. Po którego kliknięciu, archiwum przeniesie nas do rozmowy i miejsca w niej w którym został on dodany. Po co? Od teraz można sobie dodać do rozmowy znacznik "adres Jolki" w miejscu w którym nam Jolka podała swój adres aby potem, aby potem (po 400 latach) ekspresowo go odszukać w archiwum.;)

Znaczniki można z poziomu archiwum spokojnie kasować kiedy nie będą potrzebne.

20Paź/1218

Nowości w WTW: Powiadomienia w Windows 8

Nie cierpię nowego dziecka MS, próby używania go skończyły sie na tym, że przestał działać Explorer (a wiec i panel sterowania i masa innych rzeczy), a trybu awaryjnego nie da się włączyć bo system startuje poprawnie.

Pogrubieniem zaznaczyłem informacje interesującą ludzi z Windows 7.

Ale do rzeczy, w Windows 8 mamy nowe międzymordzie zwane Metro Modern UI. Ktoś genialny sobie wymyślił, że kiedy jest włączone to aplikacje pracujące normalnie na pulpicie nie mogą pokazywać swoich okienek, znaczy mogą ale ich nie widać póki tego Modern nie wyłączymy. W efekcie siedząc w Modernistycznym IE albo poczcie nie zobaczycie powiadomień z WTW. Nightly z dnia 20-10-2012 wprowadza obejście tego problemu w postaci systemowych tostów, które są niestety znacznie mniej funkcjonalne niż moje, i do tego mają limit 3 linijek tekstu wielkim fontem. Pokazują się one tylko kiedy WTW wykryje, że mamy aktywne "Metro UI" i są wyłączalne z poziomu opcji zaawansowanych.

Jest z nimi także pewien problem. Jakiś geniusz z MS wykombinował, że aby móc używać tych powiadomień aplikacja musi mieć skrót w Menu Start z ustawionym AppID, co przekłada się na: aby tosty działały, trzeba przeinstalować ręcznie aplikację (nowa wersja instalatora ustawie AppID), a że mój AppID jest inny niż system generuje (a generuje czasem dziwne rzeczy i nie można na tym polegać) to jeśli ktoś miał WTW przypięte do paska zadań, kiedy włączy nową wersję okienko na pasku pokaże się obok skrótu a nie na nim. Rozwiązanie  tego problemu jest proste, trzeba tylko odpiąć stary skrót i przypiąć WTW ponownie. Nie mniej jednak, ten kto wymyślił ten mechanizm powinien na czymś zawisnąć.