Paweł Tarasiuk, 151021 Politechnika Łódzka
FTIMS, Informatyka, rok I. gr. 2 Zadanie 5.: Maemo.
Zgodnie z dokumentacją przygotowaną przez twórców maemo, dostępną pod adresem (http://maemo.org/development/documentation/) oraz przykładami zawartymi w dokumentacji na stronie bądź dołączonymi do dystrybucji maemosdk, przygotowany został program na platformę maemo. Wykorzystane zostały narzędzia maemosdk „DIABLO” w wersji opartej na dystrybucji Ubuntu Hardy w wersji Desktop, pobranej z oficjalnej strony projektu maemo (http://maemo.org/development/sdks/maemo_4-1-2_diablo/).
W celu przygotowania struktury programu opartego o narzędzia autotools wykorzystany został przykład HelloWorld w C++, dostępny przy tworzeniu projektu w środowisku ESBox.
Struktura projektu została uzupełniona między innymi o plik .desktop i regułę do umieszczania go w odpowiedniej lokacji (w celu umożliwienia prostego uruchamiania go z poziomu maemo) oraz .service (który zostaje odpowiednio przygotowany przez narzędzia autotools, zależnie od lokacji w której program zostanie zainstalowany) – pomocny był opis zawarty na stronie http://raphael.slinckx.net/blog/documents/dbus-tutorial.
Program stanowi środowisko programistyczne dla języka BrainF*ck. Jego interfejs oparty jest o bibliotekę Gtk, oraz wykorzystuje kontrolki z bibliotek Hildon tam, gdzie skutkuje to ułatwieniami w korzystaniu z aplikacji pod platformą maemo. Program umożliwia wygodną edycję kodu w języki BrainF*ck, oraz różne tryby jego uruchamiania, dzięki którym łatwo analizować działanie napisanego programu. W zasadzie jednak należy to traktować jako zabawkę, gdyż BrainF*ck jest językiem ezoterycznym, znacznie utrudniającym tworzenie programów użytkowych.
Odpowiednia edycja narzędzi autotools polegała na uzupełnieniu zależności (chociażby o bibliotekę hildon-fmmm, z której wykorzystywana jest kontrolka Hildon::FileChooserDialog), oraz tworzeniu i instalacji pliku .service. Stworzone zostały także reguły do tworzenia pakietu .deb (katalog „debian”). Odpowiednie wartości zostały ustawione za pomocą narzędzia „dh_make”.
Pakiet debiana został stworzony za pomocą polecenia „dpkg-buildpackage -rfakeroot”.
Ponadto za pomocą wywołania „make dist” przygotowana została źródłowa dystrybucja stworzonego programu.
Proponowane pytania na do pracy:
1. Omówić interfejs graficzny programu i wyjaśnić wybór wybkorzystanych kontenerów Gtk.
2. Zademonstrować działanie programu, tworząc i uruchamiając pewien kod w języku Brainf*ck. Przedstawić przygotowaną funkcjonalność i wyjaśnić, w jaki sposób została ona zaimplementowana.
3. Jakie możliwości języka C++ oraz specyficzne dla tego języka bibioteki zostały wykorzystane przy tworzeniu programu? Jakie szablony z bioblioteki STL zostały wykorzystane i dlaczego?
4. W jakich okolicznościach zostały wykorzystane kontrolki z biblioteki Hildon? Jaka jest ich przewaga nad standardowymi kontrolkami z Gtk?
5. W jaki sposób interpretator jest zabezpieczony przed niebezpiecznym kodem w języku Brainf*ck, który może wprowadzać użytkownik (nieskończone pętle, alokacja dużej ilości pamięci)?