sobota, 26 stycznia 2008

Widok z okna

Michał wstał i podszedł do okna. Zobaczył staw pokryty lodem, poprószony śniegiem. W dali na horyzoncie zobaczył szczyt kaplicy z krzyżem. Dalej były tylko łąki i rowy melioracyjne. Niebo było szare, przesłonięte chmurami. Popatrzył na otoczenie. Zauważył pasiekę z niebieskimi i żółtymi ulami wzdłuż ogrodzenia. Za ogrodzeniem było boisko, a w dali zagajnik leśny. Odwrócił się od okna, spojrzał na Dusię. Spała w negliżu na kanapie. Zamyślony nad jej pięknem, poszedł do kuchni. Nastawił czajnik i garnek z mlekiem. Wziął głębokie talerze i przygotował pieczywo. Nalał gorącego mleka do talerzy, wsypał płatki kukurydziane. Poszedł do Dusi. Dusia była przebudzona. Uśmiech się pojawił na ich twarzach.
---- Jesteś świetnym kochankiem --- powiedziała z radością w oczach
---- Dziękuję za komplement umiłowana. Zapraszam na śniadanie. --- podał jej rękę
Dusia podała mu swoją rękę i poszli sobie do kuchni. Siedli przy stole.
--- Czego mnie dzisiaj nauczysz mój mistrzu ? --- spytała się z radością w oczach
--- Jak patrzeć w okno... ---- odpowiedział zamyślony --- bardzo trudno jest dobrze patrzeć w świat okien
W milczeniu jedli śniadanie. Dusia wiedziała, że jak Michał ma jakiś problem programistyczny to się robi poważny.
--- Pomóc Ci ? ---- spytała się nieśmiało
--- Tak bardzo proszę, może jak uda mi się wytłumaczyć problem Tobie przy komputerze to będę rozumiał swój problem
--- Dobrze, jak się ubiorę, bo pewnie znowu zamiast myśleć o programowaniu będziesz myślał o mojej urodzie ---- powiedziała z nutką ironii
Dusia wyszła z kuchni, Michał pozostał i posprzątał po śniadaniu.
Po godzinie czasu Michał włączył swój komputer i intensywnie myślał o programowaniu graficznego interfejsu użytkownika w Symbianie. Programy w Symbianie mają okienka,. które informują użytkownika o jego interakcji z programem. Dla programistów Symbiana przygotowano odpowiedni sposób tworzenia aplikacji z graficznym interfejsem użytkownika. Zrozumienie tego było troską Michała. Uruchomił Carbide.c++ i zaczął czytać dokumentację.
Dusia tym razem ubrała sie na sportowo w dresie i siadła obok Michała.
--- Co ty tak szybko czytasz dokumentację po angielsku? Nie mogę się nadziwić tempem w jakim przyswajasz te informacje...
--- Jak chodziłem do podstawówki to na każdej przerwie między lekcjami, nawet tej z 5 minutami uciekałem do biblioteki, żeby przeczytać na miejscu książki. Zresztą bibliotekarka była atrakcyjną kobietą dla mnie wtedy. --- zamyślił się --- To mnie nauczyło, że należy szybko czytać i umieć selekcjonować informacje do czytania. Wracam do okienek. Najpierw powiem Ci jak działają okienka w Symbianie.
--- Dobrze..
--- W tym wszystkim jest pewien porządek. Aplikację można podzielić na 2 części. Pierwsza cześć to interfejs użytkownika, a druga część to silnik aplikacji. architekci często nazywają pierwsza część widokiem (ang. View) a druga cześć modelem (ang. Model). Takie rozdzielenie jest korzystne ze względów takich że łatwiej potem przerobić kod źródłowy na inne platformy Symbiana. Najbardziej znane platformy Symbiana to Series 60 i UIQ. Trzeba tak pisać kod, żeby współpracował z wieloma platformami Symbiana. Bo to co różni te platformy to że dostarczają innego interfejsu programistycznego do obsługi interfejsu graficznego.
--- A co to jest ten interfejs graficzny i czym się różni od interfejsu programistycznego?
--- Interfejs programistyczny informuje programistę co może wykorzystać w swoim kodzie. a interfejs graficzny informuje użytkownika jak ma korzystać z aplikacji. Tak mogę w bardzo dużym uogólnieniu Ci wyjaśnić. W praktyce polega to napisaniu kodu, który spełniał by pewne założenia.
--- Jakie założenia? ---- Dusia próbowała ogarnąć to co mówił Michał
--- Założenia jakie wymyślili architekci inżynierii programowania obecnie często są nazywane wzorcami projektowymi. Są to bardzo abstrakcyjne uwagi na temat tego jak mamy pisać kody aplikacji. W pewnym sensie one stają sie żargonem pozwalającym na płynną komunikację pomiędzy programistami w zespole Teraz Ci pokażę jak programiści opisują tworzenie aplikacji okienkowej w Symbianie.
W Symbianie jest framework aplikacyjny który jest biblioteką do tworzenia własnych programów. Czyli programista na bazie tej biblioteki może tworzyć własne aplikacje. W praktyce wygląda to tak że koder w Caribe.c++ wykorzystuje szkielet wygenerowanej aplikacji .Co ten szkielet zawiera?
---- Ale to już jakiś horror skoro mi mówisz o szkieletach. ---- zażartowała Dusia. Michał zaśmiał sie.
---- Rzeczywiście jest to horror, gdy ktoś pierwszy raz siądzie do kodu z C++. Czarna magia. Nie bez powodu Ci, którzy się znają na takim programowaniu mogliby zostać odebrani jako czarnoksiężnicy. Nie dziwię się temu, że Ci którzy są hakerami, mają przeważnie czarną legendę w potocznym rozumieniu. Aby lepiej wytłumaczyć zmienne procesy architekci często wykorzystują rysunki z takimi schematami., które nazywają diagramami UML.
---- Ojejku, ale to wszystko jest takie tajemnicze i... --- zamyśliła się --- takie romantyczne.
Dusia patrzyła się na diagramy UML.
---- Dobry obraz jest wart tysiąca słów. Szkielet aplikacji w Symbianie tez wskazuje jak działa aplikacja.
Jak aplikacja zostaje uruchomiona to najpierw jest wywoływana funkcja E32Main() Ona jest punktem wyjścia do dalszego działania. Następnie wywoływana jest też funkcja NewApplication() Tworzy ona w pamięci komórki obiekt aplikacji W następnej kolejności jest wywoływany obiekt dokumentu z funkcją CreateDocumentL(), a ta funkcja z kolei wywoła jego konstruktor NewL(). W tym czasie też z obiektu dokumentu zostaje wywołana funkcja CreateAppUiL() odpowiadająca utworzenie obiektu interfejsu użytkownika w funkcji CreateAppUiL() a ta funkcja z kolei też wywoła jego konstruktor. Ten konstruktor sprawia, że wszystkie dane odpowiadającej za interfejs aplikacji są w pamięci zerowane. a w następnej kolejności jest tworzony obiekt kontainera. Kontainer (inaczej zwany widokiem) to taki zasobnik danych gdzie programista będzie mógł sterować kontrolkami i oknami aplikacji. Natomiast aby narysować na wyświetlaczu komórki musi zostać wywołana funkcja z CCoeControl::ActivateL().
Dusia wysłuchała tego wszystkiego i poczuła się zagubiona
---- Po co tyle powiązań?
----.Dusia wynika to z troski architektów o to aby proces tworzenia aplikacji był bardzo ogólny i abstrakcyjny. A do programisty należy wykorzystanie tych ogólnych i abstrakcyjnych mechanizmów w swojej aplikacji. Architekci sposób działania aplikacji Symbiana opisaliby trochę inaczej. Aplikacja jest miejscem z którego program zaczyna działanie, jest elementem wykorzystującym framework aplikacji Symbiana, którą dla komórek z platformą S60 jest nazywany AVKON. Dla aplikacji podstawą jest klasa CAknApplication. Dokument tworzy kontroler aplikacji. Dla dokumentu podstawą jest klasa CAknDocument. Kontroler odpowiada za interfejs użytkownika a także z interakcją użytkownika i za wyświetlaniem na wyświetlaczu przez serwer okienek. Dla kontrolera podstawą jest klasa CAknAppUi Model to już zestaw klas odpowiedzialnych za logikę aplikacji. Model jest tworzony przez dokument, natomiast kontroler i widok mają dostęp do danych modelu. Widok odpowiada za prezentację danych w modelu. Dla widoku podstawą jest klasa CAknView.
---- Czy to coś jak mi kiedyś tłumaczyłeś, że łatwiej jest budować na czymś abstrakcyjnym, aby lepiej opisać rzeczywistość ?
---- To tak jak z interfejsem Rzecz tworzyło się klasę abstrakcyjna Dom implementującą składowe tego interfejsu. Na bazie tej klasy można było utworzyć klasę Budynek czy klasę Budowla. To są jak idee, które przekształcają się w byty. Jak klasa z biblioteki jest wywoływana to tworzy się w pamięci urządzenia informację wypełniona konkretnymi danymi. Tak powstają z klas obiekty
---- Michale zauważyłeś jak potrafisz odwracać kota ogonem od programowania skaczesz w filozofię, a znając Ciebie to pewnie zaraz wymyślisz teologię z informatyki --- zaśmiała się.
Michał puścił okiem, dał do zrozumienia, że z tym się zgodził. Uruchomił nowy projekt w Carbide.c++ Wybrał S60 3rd Edition i zaznaczył S60 3rd Edition GUI Application. Projekt nazwał Okienko. Następnie wybrał tworzony kod będzie uruchomiony pod emulatorem. W Basic Setting zamiast tekstu "Hello World" wpisał "Nasze okienko". Kliknął Finish. Carbide.c++ wygenerowało kod. Uruchomił emulator.
--- Dusiu chcę ci pokazać kod.
--- Michale innym razem. Powiedz mi czy w Polsce są ludzie, którzy piszą programy na Symbiana?
--- Oczywiście , największy udział w popularyzowaniu wiedzy w Polsce o programowaniu na Symbianie w C++ mają Sebastian Wieczorek (pracuje w firmie Softline), który pod nickiem sebax publikował kurs programowania w "Internetowej gazetce KF". Twórca serwisu Symbian4u Rafał Misiarek też zaczął pisać o programowaniu na Symbiana. Sporo osób programujących w Symbianie pracuje w firmie BLStream czy w Psiloc, bądź w eLeader. Innym przykładem jest tworzenie oprogramowania w Symbianie w Polsce przez zagraniczne firmy np: Mobica Ltd
--- To tych ludzi jednak jest trochę.
--- Problem jest w tym, że trudno jest ich zatrzymać w kraju (a szczególnie kobiety - programistki Justyna Żmuda i Joanna Trochnimiuk).
Dusia zadowolona ze Michał stał sie pogodniejszy. Pocałowała go w policzek. .

2 komentarze:

Lax pisze...

dusię na pewno ucieszyłby taki prezent:
http://gospodarka.gazeta.pl/technologie/1,86564,4856939.html

Sylwester Gąsiewski pisze...

@lax

na pewno nie, jakbys czytal to bys wiedzial iz Dusia uznaje Michala za swietnehgo kochanka wiec nie potrzebuje gadzetow :)