Tickmate

Pisałem kiedyś o programach dla Androida, które IMO trzeba mieć zainstalowane na telefonie. Od tamtej pory nic mnie nie urzekło, ale ostatnio zobaczyłem. Przez przypadek w F-Droid, pewnie jako nowa aplikacja, albo w kategorii „niedawno zaktualizowane”, mignął mi program Tickmate. Zaintrygował mnie opis: one bit journal.

Screenshot z appki Tickmate
Źródło: Tickmate GitHub

Zainstalowałem i… bardzo fajny soft. Prosta idea (zaznacza się, czy coś się wydarzyło danego dnia, czy nie), zgrabne wykonanie – IMO estetyczny, spójny i działa szybko, sensowny projekt – można grupować, można używać od razu, ale jak ktoś potrzebuje, to jest więcej opcji pod spodem, typu rzeczy, które mogą zdarzyć się kilka razy dziennie. Są oczywiście statystyki.

Fajna sprawa do śledzenia nawyków, czy to do wyrabiania nowych, czy do wykorzeniania istniejących. Albo do treningów. Appka jest open source, więc dorobiłem polską wersję językową. Pewnie będą zmiany, bo muszę zobaczyć na żywo i ew. poprawić.

Przy okazji okazało się, że mam problem ze zgrabnym przetłumaczeniem dwóch słów. Pierwsze to track, jako rzeczownik, w sensie zapisu przebiegu jakiejś czynności. Zdecydowałem się na ślad, ale… trochę nie leży mi to tłumaczenie. Myślę o zapis lub dziennik.

Drugie słowo to tick, zarówno jako czasownik, jak i rzeczownik, w kontekście czegoś, czego wykonanie zaznacza się na liście. Póki co jest (chociaż nie wprost, raczej jako czasownik) zaznaczenie, ale w grę wchodzą fajka, haczyk, ptaszek. Tylko to wszystko mocno potoczne… Myślę o haczyk, zwł. odhaczyć.

Appka do pogrania ze sklepu Google Play oraz z wolnego repozytorium Android. Kod źródłowy jest dostępny na GitHub.

Jak już wyjdzie wersja z polskim tłumaczeniem, to uwagi/sugestie mile widziane.

„Must have” aplikacje na telefon z Androidem

Android robot - logo

Źródło: https://en.wikipedia.org/wiki/Android_(operating_system)

Okazuje się, że trochę z Androida jednak na telefonie korzystam. Do tej pory znalazłem dwie sprytne aplikacje, które bardzo ułatwiają mi życie.

Pierwsza z nich to Screebl Lite.

Zadaniem aplikacji jest blokowania funkcji wygaszania ekranu, jeśli wygląda na to, że korzystamy z urządzenia, czyli trzymamy je w ręku. Używanie wykrywane jest po nachyleniu – jeśli odłożymy telefon na płask, to się wygasi normalnie, ale jeśli będzie pod kątem, to się nie wygasi. W połączeniu z agresywnym ustawieniem wygaszania (zawsze takie miałem), pozwala oszczędzać baterię, ale z drugiej strony nie przeszkadza w pracy.

Przyznaję, że na początku po poleceniu przez D. (thx!) i instalacji Screebl Lite nie zauważyłem różnicy i stwierdziłem, że w sumie nieprzydatny bajer, ale po namyśle i dłuższym korzystaniu – wręcz przeciwnie, znacznie wygodniej jest z tą appką. Doceniłem różnicę, gdy wyłączyłem aplikację… A wyłączyłem, bo niezupełnie dobrze współgra z Yanosikiem – podczas jazdy przy aktywnym Screebl, ekran cały czas pozostał niewygaszony.

Druga sprytna aplikacja to Wi-Fi Matic.

Zasada działania jest prosta: aplikacja zapamiętuje lokalizacje, w których włączamy Wi-Fi, a następnie wyłącza Wi-Fi po ich opuszczeniu, a włącza po powrocie do tych lokalizacji. Proste i skuteczne, zwalnia z konieczności ręcznej aktywacji Wi-Fi w telefonie i pozwala oszczędzać pakiet danych u operatora GSM. Okres, co ile ma być sprawdzana lokalizacja można zdefiniować w aplikacji, a określanie lokalizacji nie korzysta z GPS, tylko jest zrobione sprytnie, w oparciu o stacje bazowe GSM.

Z Wi-Fi Matic korzystam raptem od paru dni, ale jestem bardzo zadowolony. Przy okazji, aplikacja posiada wolny kod źródłowy dostępny na Githubie i jest dostępna w repozytoriach F-Droid.

Bonusowo: F-Droid.

F-droid, czyli manager wolnoźródłowych i wolnych (także dodatki i dane) appek dla Androida. Pozwala na łatwe wyszukiwanie i instalowanie aplikacji z opisywanego kiedyś repozytorium f-droid.org. Spodoba się pewnie głównie miłośnikom Linuksa, ale i tak warto się zainteresować – trochę ciekawych aplikacji, wszystkie appli dostępne bez reklam i opłat, z wyszczególnionymi zagrożeniami prywatności.

Powtarzalne budowanie pakietów w Debianie

Dyskusji nt. zgodności pakietów binarnych z dostarczanymi źródłami teraz nie znajdę (podrzucenie mile widziane), ale Półtora roku temu pisałem o braku weryfikacji, czy kod źródłowy jest zgodny z wersją binarną. Pamiętam, że w różnych dystrybucjach wyglądało to różnie, a chyba w żadnej dobrze. IIRC na testowanym pakiecie różnice w Debianie były minimalne, bo dotyczyły tylko timestampu ale… były. W praktyce dla użytkownika końcowego oznacza to brak możliwości łatwego zweryfikowania, czy dostarczony (bardziej: deklarowany) kod źródłowy odpowiada dostarczonej wersji binarnej pakietu[1].

Implikacje są oczywiste: możemy uruchamiać co innego, niż sądzimy, że uruchamiamy. Z jednej strony może dojść do naruszenia licencji (zwł. GPL) i użytkownik może mieć problemy z modyfikacją oprogramowania, z drugiej, bardziej praktycznej: mogą pojawić się problemy z bezpieczeństwem. Nie tylko developer może dołożyć coś od siebie (developerom ufamy), ale nawet atakujący może w wyniku włamania przejąć klucze jakiegoś developera i wprowadzić zmodyfikowaną wersję binarną pakietu do repozytorium.

Wiadomo, że dokładna i systematyczna kontrola podstawą zaufania, w związku z tym w Debianie ogłoszono projekt Reproducible Builds, który ma na celu dostarczenie narzędzi i środowisk do kontroli oraz poprawę pakietów tak, aby można było w prosty sposób sprawdzić zgodność pakietu binarnego ze źródłem. Czyli każdy będzie mógł łatwo odpowiedzieć na pytanie: czy dany pakiet powstał z deklarowanego źródła?

Projekt dotyczy raczej przyszłych wersji Debiana, ale na pewno jest krokiem w kierunku zwiększenia wolności użytkowników i bezpieczeństwa.

Wg danych projektu w chwili obecnej udało się potwierdzić powtarzalność budowy ponad 83% pakietów z repozytorium main dla Debiana unstable.

[1] Nie miejsce na dyskusję nad wyższością dystrybucji pakietów w źródłach nad wersją binarną i odwrotnie.

Czy to naprawdę kod źródłowy tego programu?

Polecam cały artykuł Is that really the source code for this software? a dla niecierpliwych lub niespikających krótkie streszczenie. Wiele wolnego oprogramowania przychodzi w postaci binarnej, do której dołączony jest kod źródłowy w teorii odpowiadający dokładnie temu, z którego zostały zbudowane wersje binarne. Zagadnienie jest ważne zarówno z punktu widzenia wolności oprogramowania, jak i bezpieczeństwa.

Autor ww. artykułu postanowił sprawdzić, jak to wygląda w praktyce dla popularnych dystrybucji Linuksa (Debian, Fedora, OpenSUSE) na przykładzie tak prostego oprogramowania jak tar. Wykorzystał do tego celu minimalne instalacje systemu, korzystał ze źródeł dostarczonych w dystrybucjach i metod budowania zalecanych przez dystrybucje.

Wyniki są dość zaskakujące ani razu nie udało mu się uzyskać dokładnej (bit w bit) kopii tego prostego przecież pakietu.

W przypadku Debiana różnice były minimalne (data i id buildu w plikach wykonywalnych), w przypadku OpenSUSE było gorzej – powstałe pliki binarne były 5 razy większe od oryginału, ale po stripnięciu wersji binarnych sytuacja wyglądała już podobnie jak w przypadku Debiana. Najgorzej wypadła Fedora – nie tylko różnic było najwięcej, ale autorowi artykułu nie udało się ustalić przyczyn wszystkich rozbieżności i „niełatwo stwierdzić, czy samodzielny build ze źródeł będzie funkcjonował identycznie, jak opublikowana wersja binarna z dystrybucji”.

W przypadku skomplikowanych pakietów i projektów luźniej podchodzących do kwestii wolności oprogramowania, niż dystrybucje Linuksowe (np. firmware routerów z wykorzystaniem wolnego oprogramowania – często zamieszczają kernel, ale zwykle jest to wersja waniliowa wzięta na żywca z kernel.org…) różnice będą jeszcze większe. Gdyby ktoś znalazł komentarz RMS do sprawy, proszę o linka – bardzo jestem ciekaw, co ma do powiedzenia w tej sprawie.

Wolne repozytoria dla Androida czyli alternatywa dla Google Play.

Model sprzedaży aplikacji przez Google mi się niezbyt podoba: sporo mało użytecznych aplikacji, wszechobecne aplikacje płatne i z reklamami. Oczywiście, niby jest system ocen, ale nadal ciężko wybrać (z dwóch wysoko ocenianych czytników ebooków jeden był totalnie OKDR). Niby jest filtrowanie płatne/bezpłatne, ale już filtra na wersję bez reklam nie ma. Ogólnie, żeby coś znaleźć fajnego, trzeba trochę prób i błędów. Niewiele jest dobrych i jednocześnie darmowych aplikacji. TBH wolałbym trial pełnej wersji, albo po prostu aplikacje, które w prosty sposób umożliwiają przekazanie pieniędzy np. przy pomocy Flattr. Na ostatnim P.I.W.O pytałem o alternatywne repozytoria pakietów i nikt nie znał takowego.

Dołóżmy do tego fakt, że twórca aplikacji sprzedawanej w Google Play dostaje w przypadku zakupu nasze dokładne dane i robi się niezbyt ciekawie. Gdyby ktoś chciał repozytorium zorientowane bardziej na wolność, prywatność i z wolnym oprogramowaniem, to informuję, że takowe istnieje. Dowiedziałem się o nim, gdy ponarzekałem na Androida – zostałem odesłany do projektu Replicant, czyli całkowicie wolnej alternatywy dla Androida.

Mój tablet (Go Clever A73) nie jest wspierany (ogólnie mało urządzeń jest), ale za to dowiedziałem się o tytułowym wolnym repozytorium dla Androida, czyli f-droid.org, czyli wspomnianej alternatywie dla Google market AKA Play. Zawiera tylko wolne oprogramowanie (preferowany sposób dystrybucji to dostarczenie kodu źródłowego do utrzymujących f-droid.org, a następnie skompilowanie przez nich). Można pobierać aplikacje bezpośrednio, można skorzystać z managera. Pierwsze wrażenie przy instalacji pakietów z jego pomocą – znacznie lżejszy od aplikacji obsługującej Play. Aplikacje szybciej się pobierają i instalują. I mniej kolorowo – niestety, dostępne są tylko opisy aplikacji, nie ma screenshotów. Wada, bo jednak kupujemy oczami.

Część aplikacji jest dostępnych w Play (co ciekawe, musiały być wysoko ocenione, skoro je zainstalowałem). Może się zdarzyć, że przed instalacją wersji z f-droid.org trzeba będzie odinstalować wersję z Google Play. Większość aplikacji jest użyteczna i po prostu działa. Trzeba jednak zwrócić uwagę na opisy i funkcjonalności, bo czasem zdarza się, że aplikacja dostępna w repozytorium f-droid jest mniej funkcjonalna, niż jej odpowiednik z Google Play – wynik pozbycia się niewolnych bibliotek czy źródeł danych.

Inną ciekawą funkcją są tzw. antyfunkcje. W managerze pakietów można określić, czy chcemy dopuścić instalację aplikacji zawierających reklamy, namierzających położenie lub raportujących działania (kiedyś to się spyware nazywało…), wspierających płatne dodatki, wspierających płatne usługi sieciowe czy w końcu zależne od innych, płatnych aplikacji. Domyślnie wyszukuje tylko wśród wolnych aplikacji, ale można wyłączyć. Jeśli komuś zależy, to może podążać ścieżką GNU i RMS, ale nie ma przymusu.

W przeciwieństwie do Play, f-droid.org pozwala na wybór wersji instalowanej aplikacji. Czyli jeśli najnowsza np. nie działa na naszym sprzęcie, albo zwyczajnie się nam nie podobają zmiany wprowadzone przez autora, to nie ma przymusu i nadal można zainstalować wersję starszą.

Nie wiem jak ocenią f-droid.org typowi użytkownicy, ale z linuksiarskiej perspektywy – warto się zainteresować tym alternatywnym repozytorium pakietów dla systemu Android. Oczywiście z obu źródeł pakietów można korzystać jednocześnie.

PS. Opisuję, bo mało popularne, choć było opisywane po polsku dwa razy.