Archiwum kategorii bloatware

Postęp techniki – składowanie danych

Gdy dziś ogląda się reklamy takie jak na przykład dysków firmy XCOMP, wśród młodszych wiekiem specjalistów technicznych pojawia się zdziwienie. Dysk po pojemności 10MB przeznaczony do niewielkiego komputera kosztował prawie 4 tysiące USD za 10MB, co po uwzględnieniu inflacji odpowiada ponad 9000 dzisiejszych dolarów!

Dysk XCOMP, 10MB

Jeszcze ciekawiej wygląda porównanie samych komputerów – przykładowy system Cromemco Z-2 wyprodukowany w 1977 r. posiadał procesor Z80 firmy Zilog taktowany zegarem 4MHz. O ile sam system nie był nadzwyczajnie kosztowny (około 1000USD), wszystkie najważniejsze elementy, takie jak pamięć, oraz urządzenia wejścia/wyjścia były zamawiane osobno, a następnie instalowane jako karty rozszerzeń. Instalacja podobnego komputera z dyskiem twardym 14MB kosztowała prawie 14 tysięcy ówczesnych dolarów (co odpowiada prawie 30 tys USD dziś).

Komputery Cromemco_Z-2 przy obsłudze giełdy towarowej w Chicago

Komputery Cromemco_Z-2 przy obsłudze giełdy towarowej w Chicago, rok 1984.


Komputery Z-2 obsługiwały różne profesjonalne instalacje, w tym giełdę towarową Chicago Mercantile Exchange i zostały zastąpione przez IBM PS/2 dopiero w 1992r.

Ponad 600 takich komputerów używano do wspierania misji bojowych samolotów F-15, F-16 i F-111 w siłach powietrznych USA, w tym także w pierwszej wojnie w Zatoce Perskiej. Komputery te miały jednak inny procesor (Motorola 68020) i dysponowały wymiennym dyskiem twardym.


Cromemco Z-2H dla USAF, 1986

Cromemco Z-2 z wymiennym dyskiem, wersja dla US Air Force, 1986.


Postęp techniki, automatyzacja i masowa produkcja sprawiły, że koszt składowania tej samej porcji danych jest dziś miliardy razy niższy. Tworzymy ogromne ilości danych – użytkownicy samego Youtube’a publikują dane, które wymagają petabajta surowej pojemności dziennie. Nic dziwnego, że Google szuka alternatyw dla klasycznych dysków twardych.

Bloatware

Zasobożerność aplikacji bywa często porównywana do nadwagi. Coś w tym jest!
Oto moja osobista lista zawodników klasy ciężkiej – aplikacji i systemów, które powinny działać o wiele lepiej, bo obecne zużywają zbyt dużo zasobów, były lub są przeładowane funkcjami. Ogólnie lepiej by było, gdyby były napisane według starszego podejścia, które wymuszało optymalizację wydajnościową kodu.

Więcej »

Czy zawsze AJAX jest dobry?

Aplikacje webowe wykorzystujące technologię AJAX mogą zaoferować całkiem ciekawe możliwości swoim użytkownikom. Mogą być wyposażone w dynamiczne formularze, aktywne obiekty, ciekawe elementy graficzne i tekstowe, mogą działać interaktywnie. Niestety zapewnienie spójnego odbioru pracy takiej aplikacji wcale nie jest proste. Wystarczy drobny problem z komunikacją, opóźnienie lub zatrzymanie ładowania jednego ze składników, błąd w jednym z wielu skryptów albo nieprzewidziane przez autorów działania użytkownika, by w stronie mogły pojawiać się błędy. Pół biedy, gdy dotyczy to stron informacyjnych. Niestety ten sam problem dotyczy także niektórych stron transakcyjnych, przykładem może być nowy serwis mBanku.
Więcej »

OpenBSD i OpenSSL

Dziś rozmawiałem z naszym głównym informatykiem na temat podatności w bibliotekach OpenSSL. Wnioski nasuwały się same – potrzebne będzie wyczyszczenie kodu tego projektu, podobne do tej akcji programistycznej, którą wykonał Theo de Raadt nad OpenBSD albo wcześniej D.J.Bernstein przy serwerze qmail. Otóż pomysł ten wcale nie jest taki oryginalny. Właśnie rozpoczął się projekt LibreSSL, którego zadaniem jest uproszczenie, usunięcie błędów i rozwój bibliotek wywodzących się z OpenSSL. Długa droga przed twórcami OpenBSD i OpenSSH, ale demolka opasłego, źle udokumentowanego kodu OpenSSL już się zaczęła. Theo de Raadt powiedział w wywiadzie dla ZDNET:

99.99% społeczności nie obchodzi wsparcie systemu VMS, a dla 98% nie ma znaczenia obsługa Windows. Interesuje ich wsparcie systemów POSIX, by kod działał w systemach typu Unix i jego pochodnych. Nie interesuje ich FIPS. Kod ma być prosty. Po naszych zmianach całe drzewo portów (8700 applications) nadal się kompiluje, aplikacje działają.

Bloatware w Internecie

Zjawisko radykalnego wzrostu zasobożerności i objętości oprogramowania, nazywane popularnie bloatware nie omija stron WWW. Odkąd serwis Twitter usunął obsługę RSS, praktycznie przestałem czytać wpisy publikowane na tej platformie. To samo potwierdzili moi koledzy. Przykładowa strona główna na Twitterze wymaga pobrania 200kB, a po włączeniu skryptów, obrazków i innych zasobów – ponad 2,5 MB. Nie pomaga żadna z wtyczek do Firefoksa, gdyż nadal wymagają załadowania mnóstwa skryptów:
smieci_js

Użytkownicy pobierają te zasoby po to, by przeczytać kilkanaście wpisów po 160 znaków każdy!
Podstawową alternatywą do szybkiego przeglądania jest oczywiście RSS albo prosty plik, który wyświetliłby się poprawnie w przeglądarce przy minimalnym zaangażowaniu zasobów komputera i sieci. Aby rozwiązać ten problem, stosuję następującą technologię:

  1. na serwerze pobieram stronę główną z https://twitter.com/NazwaUzytkownika za pomocą programu wget z opcją -nd
  2. powstały plik index.html przepuszczam przez skrypt:
    cat index.html | grep tweet-text | sed "s/js-tweet-text tweet-text/aa/g" | tidy -asxhtml -utf8 2>/dev/null > index.xml
  3. plik index.xml można wyświetlić w przeglądarce, a zatem znajduje się on na serwerze, skąd go pobiorę,
  4. oryginalna strona z Twittera wylatuje z zakładek, za to pojawia się tam link do tworzonego periodycznie pliku
  5. skrypt wywołujący kopiowanie do RSS jest uruchamiany w pętli for i in *; do z katalogu wyżej, tworząc po jednym pliku w katalogach przypisanych do odpowiednich userów Twittera,
  6. właściwy skrypt na serwerze zostaje zapisany do usługi cron, by co kilka minut tworzył właściwą kopię.

Metoda ta ma jeszcze jedną zaletę – nie ładuję żadnych skryptów śledzących, ani innych śmieci, które dotychczas musiałem filtrować za pomocą Ghostery, NoScripta i Adblock Plusa. Pobiera jedynie stronę główną każdego z użytkowników Twittera i czyści ją z różnych niepotrzebnych śmieci. Nie zostawia również żadnych śladów ze strony użytkownika w oryginalnym serwisie Twittera, poza załadowaniem strony przez serwer i jeszcze czymś, o czym za chwilę.
Na podobne rozwiązanie wpadli też inni użytkownicy Internetu i powstał kolejny serwis typu tweet to RSS, który obecnie znajduje się pod adresem http://www.rssitfor.me. Gorąco polecam!
Jedyny minus obu metod ominięcia ograniczeń wprowadzonych przez Twittera dotyczy linków we wpisach – pobrane z Twittera prowadzą do adresu t.co, skąd podlegają przekierowaniu do docelowego adresu, a zatem zostawiają ślady. Wolałbym, by dostarczane do mnie linki wiodły do oryginalnego adresu. Prace nad podobnym skryptem trwają. Użycie html2text daje obiecujące efekty.

Twitter i RSS

Niedawno Twitter usunął starsze API, które umożliwiało przeczytanie wpisów za pomocą RSS. Korzystałem z RSS bardzo często, głównie do zagranicznych autorów, ale subskrybowałem także wpisy mikroblogowe Adama Jadczaka. Ponieważ Twitter usunął stare API, nie ma już prostego sposobu na pozyskanie RSS z feedów.
Nie zamierzam korzystać z tej platformy w jej natywnym formacie. Ładowanie megabajtów WWW dla wpisu, który zawiera 160znaków to gruba przesada. Określenie bloatware jest tu jak najbardziej uzasadnione.

iPhone Redaktora Naczelnego

Poważny błąd w systemie operacyjnym iOS ukazał swe oblicze w telefonie naszego Redaktora Naczelnego. Otóż po aktualizacji do 6.1.1 czas pracy na jednym ładowaniu akumulatora skrócił się do mniej niż czterech godzin. Winny jest błąd w oprogramowaniu do synchronizacji danych z korporacyjnym serwerem poczty elektronicznej. Bug polega z grubsza na tym, że telefon wysyła błędne informacje związane z aktualizacją zdarzeń w kalendarzu, ignorując przy tym komunikaty o błędach zgłaszane przez serwer. Przy okazji wzrasta dość mocno obciążenie serwera Exchange, do zablokowania włącznie (u nas na szczęście odsetek ajfoniarzy jest bardzo mały, więc ataku odmowy obsługi nie zaobserwowaliśmy). Na szczęście ograniczenie czasu pracy do max 4 godzin (przy bezczynności urządzenia) jest naturalnym ogranicznikiem obciążenia serwera. Niestety nasz Naczelny nie bardzo jest zadowolony z działania tego ograniczenia.
Nie wiem, w jaki sposób testowane jest oprogramowanie Apple, ale sądzę, że testerzy po prostu nigdy nie sprawdzali co się stanie, gdy ktoś zmieni charakter zaplanowanego spotkania przy włączonej synchronizacji z serwerem Exchange. A jest to dość częste zjawisko w korporacyjnym środowisku.
Skoro takie „kwiatki” wychodzą po kolejnej aktualizacji usuwającej inne błędy (głównie zrywane połączenia i przegrzewanie telefonu) i pojawiają się także luki w bezpieczeństwie (obejście ekranu blokowania, taki sam błąd był już w dwóch wcześniejszych wersjach iOS, być może winny jest ten sam fragment kodu), to może należy powątpiewać w jakość kodu całego systemu operacyjnego iOS. Zatem wśród platform ściśle biznesowych na placu boju zostaje tylko BlackBerry, odpowiednio przygotowany Android i być może marginalizowany przez Nokię Symbian OS (już bez tej nazwy).

Tagi: , ,

Poszukiwany: prosty program

Producenci prześcigają się w dostarczaniu coraz ładniej wyglądających programów z dużą ilością opcji. Programy te pracują coraz wolniej i mają bardzo dużo błędów. Bardzo dobrym przykładem jest Adobe Reader – aplikacja, która regularnie zbiera tęgie baty od hackerów. Wydaje się, że jedyną sensowną opcją byłoby napisanie prostego programu, który jedynie czytałby pliki PDF, dając możliwość wydruku i skorzystania z treści dokumentu.
W środowisku systemów typu UNIX, takim programem jest xpdf lub evince (przeglądarka Gnome), dla Windows jest to SumatraPDF.
Jest bardzo prosty, nie mąci w rejestrze, działa szybko i sprawnie, jest rozwijany od 2006r. Na słabszym sprzęcie jest ponad 10x szybszy od Adobe Readera. Ponadto jest to prosty program, a zatem prawdopodobnie zawiera mniej błędów.
Problem bloatware, czyli aplikacji, które rozdymają się do niesamowitych rozmiarów, pożerając przy tym zasoby, znają bardzo dobrze miłośnicy komunikatora Gadu-Gadu, korzystający z oryginalnego klienta w najnowszej wersji. Nie jest to jedyny przykład.
Twórcy tych aplikacji zdają się zapominać, że prawdopodobieństwo luk w bezpieczeństwie wzrasta w miarę wzrostu złożoności programu.