Czy rozmiar ma znaczenie?

W tym przypadku prawo nagłówków Betteridge’a nie ma zastosowania, odpowiedź będzie twierdząca, a wszystko za sprawą Androida.

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

Od roku korzystam z Yanosika. Jakiś czas temu zauważyłem, że niemal skończyło mi się miejsce na karcie SD. Szybkie śledztwo ujawniło, że głównym winowajcą nie są – jak przypuszczałem – zdjęcia, tylko katalog yanosik-new, który zajmował ponad 700 MB z dostępnych 2 GB na karcie (wiem, mała, taka zaszłość). Ponarzekałem na FB, usłyszałem, że zawartość katalogu można bezpiecznie usunąć – odbuduje sobie co potrzebne. Znaczy się klasyczny cache. OK, rok używany, karta mała, nie robię afery. Usunąłem.

Ostatnimi dniami coś Yanosik zaczął zgłaszać błędy w stylu aplikacja nie odpowiada – czekaj/zgłoś/zamknij. Coś mnie tknęło, żeby znowu sprawdzić zajętość karty i… bingo. Znowu brak wolnego miejsca. Co prawda zrobiłem na urlopie parę zdjęć, ale zdecydowanie nie kilkaset MB. Oczywiście znowu yanosik-new ma rozmiar ponad 700 MB… Zacząłem szukać większej karty i rozglądać się za instrukcją zmiany karty w telefonie na większą. Przy okazji obmyślając, jakich ciepłych słów użyć pod adresem autorów Yanosika, bo zużycie 700 MB w rok to jeszcze jestem jakoś w stanie zrozumieć, ale w 3 tygodnie?

Znalazłem jakąś kartę 4 GB, ale okazało się, że muszę sprawdzić, czy jest sprawna. Wymiana karty SD w urządzeniach z Androidem jest prosta – wystarczy zgrać całą zawartość na komputer, sformatować nową kartę, przegrać wszystkie dane na nową. I powinno działać. Wygląda prosto, ale stwierdziłem, że zrobię backup, poza tym i tak wygodniej wrzucić całość na chwilę na komputer, niż kopiować między czytnikami.

I tu niespodzianka. Po usunięciu miniaturek zdjęć (jakieś 200 czy 300 MB) i skopiowaniu wszystkich danych na dysku katalog zajął… 880 MB.  Czyli jakąś połowę tego, co na karcie. W tym momencie zapaliła mi się lampka ostrzegawcza. Czyżby rozmiar bloku? Katalog Yanosika ma dużo małych kilkusetbajtowych plików, więc może o to chodzi. Sprawdziłem jego rozmiar w komputerze. 130 MB, więc bez dramatu. Czyżby autorzy zrobili taki bezsensowny i niedostosowany do Androida cache?

Zacząłem drążyć temat i okazało się, że cfdisk pokazuje jako system plików FAT16. No ale jak to? I jaki jest rozmiar bloku dla FAT 16? I czy w ogóle pojemności rzędu 2 GB są obsługiwane przez taki zabytek? Szybka wyprawa do muzeum i okazało się, że owszem, FAT16 obsługuje pojemności dysku do 2 GB. A rozmiar bloku to wówczas… 32 kB. Zamiast wymieniać kartę, postanowiłem zrobić mały eksperyment: zmienić system plików na FAT32.

Zmieniłem typ partycji w cfdisk (raczej bez znaczenia) i sformatowałem kartę przy pomocy mkfs.vfat -F 32, czyli wymuszając FAT32. Skopiowałem dane z komputera, włączyłem telefon, odbudowałem cache zdjęć. Po tym zabiegu jest 930 GB wolnego, bez kasowania jakichkolwiek danych! Czyli rozmiar bloku ma w przypadku urządzeń z Androidem duże znaczenie.

Zastanawiam się tylko, jak to możliwe. Kto w XXI w. używa FAT16? Nie kojarzę gdzie była formatowana karta. Wiele wskazuje na to, że w samym telefonie. Czyżby Android był tak słabo zaprojektowany, że domyślnie formatuje karty o rozmiarze 2 GB i mniejsze na FAT16? Jeśli tak, to jak widać zupełnie bez sensu. Ciekawe też, jaki system plików jest w na wbudowanej pamięci flash. Bo o ile karty microSD są tanie (8 GB class 4 od 12 zł widzę, za mniej niż 20 zł można nawet 16 GB class 10 w sklepie kupić), więc rozważania o rozmiarze 2 GB są czysto teoretyczne, o tyle w przypadku wbudowanej pamięci nie ma możliwości zmiany jej rozmiaru – trzeba zmienić urządzenie. Gra w tym przypadku (Yanosik i jego cache plus jakieś inne dane typu zdjęcia, ale przypuszczam, że nie on jeden tak robi…) toczy się w praktyce o podwojenie miejsca…

Pewnego rodzaju obejściem problemu może być w tym przypadku opisane kiedyś przeniesienie aplikacji z pamięci wbudowanej na kartę. Oczywiście najlepiej sformatowaną na FAT32, ale to powinno już stać się automatycznie w przypadku pojemności większych niż 2 GB.

Aero2 – powiadamianie o konieczności wpisania CAPTCHA

Kolejny wyjazd na urlop i znowu dostęp do internetu sponsoruje Aero2. Oczywiście w wariancie z kompresowanym tunelem i proxy cache’ującym. Pewnie gdyby nie to rozwiązanie, to po prostu kupiłbym pakiet w Aero2, bo są naprawdę tanie. A jak testowałem przy okazji awarii netu u mojego ISP – śmiga to bardzo dobrze. Tak czy inaczej, gołe Aero2 jest nieprzyzwoicie wolne do WWW. Po włączeniu ww. proxy śmiga na tyle dobrze, że stwierdziłem, że nie ma sensu kupować. Tym bardziej, że nie pamiętam, czy aktywują od razu itp., a po włączeniu rozwiązania z tunelem wszystko działało. Przy czym najwięcej czasu przy włączaniu zajęło odszukanie wpisu z opisem.

W związku z użyciem ww. proxy WWW pojawia się jeden problem: nie działa przekierowanie. Co za tym idzie, podstawowa przeglądarka nie wyświetla w takiej konfiguracji pytania o captcha. Zresztą, nawet gdyby przekierowanie działało, to mało ono pomaga przy czynnym korzystaniu z internetu, tj. nie przy biernym przeglądaniu, ale np. podczas pisania komentarza na jakiegoś bloga. Co prawda dzięki dodatkowi Lazarus do przeglądarki (polecam!; dead link) treść komentarza nie zginie nawet jeśli funkcja cofnij w przeglądarce nie działa i nastąpi przekierowanie. Postanowiłem jednak sprawę ułatwić, przez napisanie prostego skryptu w Perlu, który sprawdzi dostępność zdefiniowanych hostów. A przy braku dostępności zadanej ilości wyświetli wyskakujące powiadomienie (xmessage). Przy czym sprawdza dość często (co 15 sekund), a jak brak łączności, to przerwa jest dłuższa.

Wyszło trochę ciekawiej, niż się spodziewałem. Wiadomo, że mocną stroną Perla są moduły, więc postanowiłem oprzeć się na dedykowanym module. Po pierwsze, okazało się, że Net::Ping domyślnie korzysta z TCP, nie ICMP, którego planowałem użyć, ale wydało się nawet lepsze. Niestety tylko do czasu, gdy okazało się, że przy podaniu hostów w formie domen i sprawdzaniu portu 80, za sprawą mechanizmu przekierowania Aero2, strona nadal jest dostępna. Tyle, że jest to strona mówiąca o konieczności wpisania captcha.

Rozwiązania są trzy. Pierwsze, to sprawdzanie zawartości strony, tj. czy nie pojawił się tekst mówiący o konieczności wpisania kodu captcha. Po pierwsze komplikuje to budowę skryptu. Po drugie, zmniejsza jego uniwersalność (będzie działał tylko dla Aero2), po trzecie, możliwe, że przestanie działać przy jakiejś zmianie komunikatu. Drugie rozwiązanie, to podanie IP zamiast nazw domenowych. Przy takim rozwiązaniu przekierowanie dokonywane przez Aero2 nie będzie miało wpływu. Mniej czytelne i… zwyczajnie nie wpadłem w pierwszej chwili.

Zamiast tego postanowiłem skorzystać z wersji najoczywistszej i pierwotnie zamierzonej: wykorzystać jednak ICMP do sprawdzania osiągalności hostów. I tu największa niespodzianka: Net::Ping (ogólnie Perl) do wykorzystania ICMP wymaga uprawnień roota. Zdziwiłem się, ale po prostu tak jest i nie jest to feature Perla, a systemu. Zwykli użytkownicy nie mają dostępu do tworzenia socketów. Z tego co znalazłem w sieci, polecane/najprostsze rozwiązanie na obejście tego to… wykorzystanie systemowego polecenia ping, do którego zwykle użytkownicy mają dostęp (SUID). Tak też uczyniłem.

Efekty można zobaczyć na mojej ulubionej sieci społecznościowej (hrhrhr), czyli w repo aero2-watch na GitHubie. Grupa potencjalnych użytkowników bardzo wąska (Linux + Aero2), ale może się komuś przyda…

Gdyby ktoś się zastanawiał, czemu klepię skrypty/siedzę na necie na urlopie to: lubię i zawsze to robię. Poza tym, do porannej kawy jak znalazł; robię też inne, typowo urlopowe rzeczy; napisanie ~50 linii w Perlu trwa znacznie krócej, niż napisanie tego wpisu.

Ile warte jest świadectwo szkolne?

Zapewne w związku z końcem roku szkolnego w radiu pojawiły się nachalne reklamy Mediaekspert, dotyczące rabatów udzielanych za oceny na świadectwie szkolnym. Jak się można dowiedzieć z reklamy, konkretnie za piątkę dają 5 zł, za szóstkę 6 zł.

Pierwsze, co mnie zasmuciło, to niedowartościowanie szóstek. Za moich czasów o szóstkę było dużo trudniej, niż o piątkę, więc już na wstępie jest lekki niesmak, że tylko złotówka różnicy. Skoro liczyć proporcjonalnie, to może 1 zł za niedostateczny? OK, szału nie ma, ale na świadectwie może być nawet kilkanaście ocen, a płacą było nie było obcy ludzie, więc postanowiłem się przyjrzeć bliżej sprawie, bo pewnie są jakieś warunki dodatkowe.

Na stronie sieci Mediaexpert znalazłem regulamin zeszłorocznej promocji – wyszukiwarka płata figle i zdecydowanie łatwiej znaleźć było dane dotyczące zeszłorocznej promocji. Przeczytałem i pierwszym moim skojarzeniem były wpisy Pacyfki z serii don’t be fool, quit the school. Co prawda tam bardziej o studiach, ale niestety ma zastosowanie.

Po pierwsze, żeby skorzystać z promocji, trzeba wydać minimum 300 zł. Uczący się matematyki szybko policzą, że świadectwo z dziesięcioma pozycjami, same szóstki to… 60 zł, czyli szalone 20% rabatu. Oczywiście, gdyby zakup był droższy, to procentowo będzie jeszcze mniej. Liczyłem bardziej na 100 zł.

Po drugie, wszystkie świadectwa są równe, ale są i równiejsze. Świadectwo opisowe to 20 zł, jeśli jest promocja do następnej klasy. Z jednej strony łatwiej uzyskać rabat, z drugiej, w przypadku dobrych ocen, wypada ono dużo gorzej. Teoretycznie szkoły zapewniają tradycyjne świadectwa, z ocenami, ale… trzeba się o nie postarać i wypisanie ich zajmuje trochę czasu.

I teraz zaczyna się najciekawsze. Pomocja trwa… całe dwa dni. Chyba po to, żeby ktoś przypadkiem nie zdążył skorzystać. Czy może w lipcu będą wakacyjne przeceny?

W tym roku akcja chyba (jakoś nazwa sklepu mi umknęła w reklamie) dotyczyła Media Markt. Znalazłem w sieci informacje o promocji (regulamin w pdf niedostępny, choć promocja jeszcze trwa, ciekawe…). Jak widać jest lepiej, niż w zeszłym roku w Mediaexpert, choć nadal niewesoło.

Klasy I-III jak widać w tym roku traktowane równo – 20 zł rabatu. Bawi za to podejście do oceny procentowej. Odpowiednikiem szóstki jest ponad 85%. Kiedyś przysługiwała ona za „ponad program”. Odpowiednik piątki to 66% i więcej. I tu już nic nie rozumiem, bo IIRC zdarzało mi się pisać testy (choć raczej na studiach), gdzie okolice 60% były wymagane na zaliczenie (i słusznie).

Poza tym, promocja trwa teraz pięć dni, a rabat przysługuje przy zakupach za 200 zł (ale nie jest wyższy, niż 100 zł). OK, zdecydowanie bardziej ludzko w tym roku.

Tak czy inaczej, uważam reklamę i pseudopromocję za szkodliwą. I celowana w dzieciaki, i deprecjonuje wartość nauki w ogóle, a ocen celujących w szczególe. Ja rozumiem, że to taki chłyt marketingowy, żeby przyciągnąć ludzi do sklepów, ale może nie mieszajcie w to dzieci i szkoły.

Nie żeby moim dzieciom zależało. I jest to co najwyżej dobry przyczynek do tego, żeby pokazać, jak reklama i promocje są tylko po to, żeby mamić.