Pierwszy projekt w GNAT Programming Studio (Ada)

•24 Maj 2009 • Dodaj komentarz

1. Uruchamiamy GPS (GNAT Studio Programming) z menu start.
2. Pojawi się nam małe okienko. Wybierzmy tutaj ‘Create New Project with wizard’.
3. Pozostawiamy ‘Single Project’ i dajemy ‘Forward’.
4. Wpisujemy nazwę naszego projektu, oraz ścieżkę docelową. Klikamy ‘Forward’.
5. Tutaj możemy wybrać język/języki kodowania. Zostawiamy samo Ada i klikamy ‘Forward’.
6. Ekran ‘Version System Control’, czyli kontrola wersji systemu. Nie przejmujemy się tym i dajemy ‘Forward’.
7. Foldery plików źródłowych. Jeśli chcemy to można tu dodać coś nowego, na początek jednak załóżmy, że pliki będziemy trzymać w jednym folderze. Klikamy od razu ‘Forward’.
8. Następny ekranik – ‘Forward’. Prawda, że to proste? ;p
9. Kolejnym powinien być ‘Main Files’. Na razie nie mamy źródełek więc zostawiamy puste. Klikamy ‘Forward’.
10. Schemat nazewnictwa także zostawiamy domyślnie. ‘Forward’.
11. Ostatni ekran. Warto zwrócić uwagę na prawą ramkę. Można tam wybrać ilość wirtualnych procesorów (wszak Ada jest do programowania współbieżnego) – pole Multiprocessing. Na ten moment pozostawmy jednak 1. Klikamy ‘Apply’.
To co widzimy to właśnie GPS. Po prawej stronie mamy Okno z informacjami wyjściowymi, po lewej natomiast drzewo projektu. Tworzymy sobie nowy plik (File -> New) i wklejamy tam poniższy kod:

with Ada.Text_IO; use Ada.Text_IO;

procedure Hello is
begin
   Put_Line(„Hello From illusion3d group!”);
end Hello;

12. Następnie klikamy na File -> Save As i wybieramy nazwę pliku… Powiedzmy `hello.adb`
13. Teraz musimy dodać plik do projektu Wybieramy Project->’Edit Project Properties’. Klikamy na ‘Main Files’, następnie na przycisk ‘Add’. Tutaj wybieramy `hello.adb`. Klikamy ok. i zamykamy okno konfiguracji projektu.
14. Teraz należy zbudować plik `hello.adb`. W tym celu klikamy na Build->Make->hello.adb (można także wcisnąć F4). Jeśli dobrze przekopiowałeś powyższy kod to kompilacja przebiegnie poprawnie o czym poinformuje Cię okienko Messages (to po prawej).
15. Teraz wystarczy uruchomić nasz projekt. W tym celu klikamy Build->Run->Hello. Wyskoczy nam okienko do wpisania parametrów. Jako, że nasza aplikacja nic nie potrzebuje klikamy po prostu ‘OK’.
Gotowe!

Instalacja GNAT Programming Studio (GPS) dla systemu Windows w 9 krokach.

•24 Maj 2009 • Dodaj komentarz
  1. Pobieramy najnowszą wersję GPS GPL z tej strony: https://libre.adacore.com/libre/download/
  2. W polu ‘Select Your Platform’ Wybieramy x86-windows
  3. Poniżej z folderu GNAT GPL wybieramy plik gnat-gpl-2008-pentium-mingw32msv-bin.exe (nazwa może się trochę różnić w wypadku kolejnych wersji).
  4. Aby pobrać plik wymagana jest niestety rejestracja. Na szczęście całkowicie darmowa. Klikamy więc ‘Create New Account’ (najlepiej PPM),
  5. W kroku pierwszym wybieramy ‘Free Software Development’ – chyba, że nasza uczelnia jest na liście akredytowanych przez GNAT company, wtedy wybieramy’ Academic Purposes’.
  6. Wpisujemy swoje dane osobowe i zatwierdzamy.
  7. Odbieramy email i potwierdzamy rejestrację. Wracamy na stronę z ekranem logowania
  8. Po zalogowaniu od razu możemy zapisać pobierany plik. Robimy to. Jest dość spory, więc warto wyjść na kawę ;p
  9. Instalacja samego pakietu jest całkowicie bezproblemowa. Jeśli choć raz instalowałeś cokolwiek w systemie Windows to dasz sobie radę.

Boost na Visual Studio 2008. Część 1 – Instalacja

•23 Maj 2009 • 1 komentarz

Instalację Boost’a dla Visual Studio można przeprowadzić na dwa sposoby:

-> Ręczna kompilację źródełek
-> Wykorzystać instalator dostępny na http://www.boostpro.com/download. Jako, że sami autorzy biblioteki w wypadku instalacji na Visual Studio zalecają wykorzystanie instalatora niniejszy wpis będzie opisywał tą właśnie metodę.

1. Pobieramy najnowszy pakiet ze strony http://www.boostpro.com/download. Aby to zrobić musimy się zarejestrować na stronie. Rejestracja jednak jest całkowicie bezpłatna, nie trzeba nic potwierdzać, a jeśli nie chcemy otrzymywać żadnych informacji o nowych wersjach pakietu wystarczy odznaczyć podczas rejestracji odpowiednią opcję. Zaraz po rejsetracji wyświetli nam sie możliwość zapisu pobieranego pliku. Zróbmy to.

2. Uruchamiamy pobrany program (jest on lekki więc powinien szybko się ściągnąć)

3. Przy ekranie takim jak poniższy wybieramy warianty buildów jakie chcemy wykorzystywać, a także naszą wersję VS:

ekran_wyboru_wariantów

4. Na następnym ekranie mamy możliwość wyboru bibliotek, które chcemy wykorzystywać. Tutaj mała uwaga. Biblioteki czysto nagłówkowe są domyślnie zaznaczone, To co dodatkowo chcemy wybrać to właśnie binarki. Pełna instalacja na VS 9.0 to około 1.6GB. Warto zwrócić uwagę, że zaznaczenie po prostu biblioteki Graph zainstaluje binarki dla trzech dostęponych wersji VS… Jeśli chcemy zainstalować daną bibliotekę to najpierw rozwijamy listę biblioteki. Teraz zaznaczając daną opcję zainstalujemy wszystkie wersje buildów. Jeśli więc interesują nas tylko konkretne to schodzimy jeszcze niżej. Ja wybrałem wszystkie buildy i wszystkie biblioteki dla VS 9.0 (czyli Visual Studio 2008):

ekran_wyboru

5. Następnie musimy poczekać aż wszystkie pliki się ściągną z internetu. Etap ten może trwać dość długo. Wszystko zależy od naszego łącza jak i od wybranych pakietów. W wypadku błędu transferu zostaniemy o tym poinformowani. Warto zawsze wybierać opcję ‘random mirror’ przy wyborze źródła z którego pobieramy. Instalator na szczęście jest dość inteligentny, jeśli coś pójdzie nie tak nie tracimy tego co do tej pory pobraliśmy.. po prostu zacznie pobierać kolejny plik.

6. Po zakończeniu pobierania i instalacji zostaniemy zapytani czy dodać ścieżkę do zainstalowanej biblioteki do Menu start. Pojawi się tam tylko opcja deinstalacji.

7. Po zakończonej instalacji mamy praktycznie wszystko gotowe.. Jednak zauważyłem, że czasem biblioteki same się nie rozpakowują (są tylko wrzucone jako archiwa w odpowiednie folderki). Warto dlatego wejść do folderu gdzie zainstalowaliśmy boosta i w wypadku gdy w folderze lib widzimy same archiwa robimy po prostu Ctrl+A, a następnie PPM i Wypakuj tutaj. Podobnie z nagłowkami (archiwum znajduje się w głównym folderze instalacyjnym), rozpakowujemy plik boost_X_XX_headers (X_XX to numer wwersji jaką instalujemy np 1_38).

8. Na koniec warto Moim zdaniem dodać zmienną systemową $BOOST_ROOT na folder instalacyjny (standardowo „C:\Program Files\boost\boost_X_XX\”) z uwagi na wykorzystanie takowej w dokumentacji, a także ze względu na czystą wygodę.

W następnej części przedstawię jak skonfigurować prosty projekt dla boosta. (najprawdopodobniej dzisiaj wieczorem)

Wstęp do bibliotek Boost.

•22 Maj 2009 • 1 komentarz

Na początek – czym jest boost?

Boost jest zestawem bibliotek napisanych dla języka C++. Mają one stanowić kolejny krok w jego rozwoju, rozszerzają jego standardowe możliwości i ułatwiają pracę programiście. Szczególnie przydatne są w przypadku tworzenia większych projektów, lub gdy posiadamy jakieś specyficzne problemy to warto choćby zerknąć czy nie ma już narzędzi do tego przeznaczonych..

Co ważne dla nas-programistów to fakt, że biblioteka boost jest na bardzo liberalnej licencji. Możemy wykorzystywać i modyfikować ją zarówno do aplikacji komercyjnych jak i otwartych, czy prywatnych. Tak, zgadza się, możemy ją modyfikować! Większość bibliotek składowych to tak na prawdę szablony, co czyni je na prawdę efektywnymi i ogólnymi.

Więcej na oficjalnej stronie: www.boost.org

Czy warto poznać tą bibliotekę?

Tak! I to zdecydowanie. W momencie gdy to piszę już 10 bibliotek składowych z kolekcji Boost’a zostało zaakceptowanych do włączenia do kolejnej wersji biblioteki standardowej języka C++0x. Także na pewno jest to inwestycja przyszłościowa. Fakt, że tworzy ją bardzo wiele osób, z czego spora grupa należy do kolegium języka C++ także ma swoje znaczenie :D

Biblioteki składowe…

Na stronie http://www.boost.org/doc/libs można zapoznać się z listingiem wszystkich bibliotek. Poniżej przedstawiam także ogólny opis kilku wybranych z którymi miałem już do czynienia. I z których często korzystam (no poza jedną, ale o tym niżej;p)

smart_ptr

„Sprytne wskaźniki”. Nie sposób się obejść bez nich w większym projekcie. Przynajmniej teraz tak uważam. Wyobraźcie sobie, że macie wskaźnik na jakiś obiekt… Korzysta z niego wiele metod. Pytanie kiedy należy usunąć wskaźnik? Na pewno nie raz stanęliście przed takim dylematem… Pozwolenie na wyciek pamięci jest tragiczne w wypadku systemów mających dłużej działać, natomiast podwójna próba usunięcia też nie jest przyjemną sprawą… Jeszcze gorzej może się zdażyć, jeśli będziecie chcięli odwołać się do już usuniętego wskaźnika… Ci którzy korzystają z wzorca Visitor na pewno wiedzą o czym piszę. Problemów jest wiele.. A co by było gdyby wskaźnik sam ‘wiedział’ kiedy powinien się usunąć? było by super.. I coś takie umożliwia nam biblioteka smart_ptr.

Na ten temat w najbliższym czasie pojawi się obszerniejszy artykuł wraz z wszelkimi założeniami i ideami. Będzie traktował ogólnie o Smart Pointers.. także o tym jak samemu napisać takie cudo, choć nie zaprzeczę, że docelowo będzie nakierunkowane na boosta.

Utility

Zapewne każdy programista ma wiele małych pomocnych narzędzi, które skrzętnie trzyma zawsze pod ręką. Czymś takim jest biblioteka Utility. Jest to zbiór niewielkich narzędzi. Taki worek dla programisty gdzie znajduje się sporo bardzo fajnych algorytmów i szybkich rozwiązań.

Python

Obraził bym jednego z illusion3d-memberów gdybym nie napisał, że boost udostępnia swoisty interfejs do połączenia pythona z C++. Dobra wiadomość dla skryptowców. ;p Z niej właśnie nie korzystam.. bo nie znam pythona :D Ale bardzo możliwe, że już niedługo…

Random

Jest to kompletny system do generowania liczb ciut bardziej losowych niż klasyczne i pospolite rand();p

Signals

Hmm.. Kojarzycie wzorzec Observer? No to jesteście w domu. I to w bardzo zaawansowany sposób. Koncepcja tworzenia sygnałów i slotów (które te sygnały odbierają) jest iście szatańską sztuką, którą należy opanować podczas programowania czegokolwiek większego.

Regex

Biblioteka wspomagająca obsługę… wyrażeń regularnych.. Jeśli znacie temat to wiecie jak bardzo jest on problematyczny (no zaraz ludzie od perla wyskoczą, że przecież to proste :D – niestety nie tak bardzo w C++). Warto zerknąć jeśli potrzebujecie.

Słowo końcowe…

I takim bardzo pobieżnym przeglądem zakończę. Jeszcze raz polecam gorąco, aby przyjrzeć się pełnemu spisowi bibliotek i.. jeśli chcielibyście zobaczyć dokładniejszy opis którejkolwiek z nich na łamach blogu illusion3d to piszcie! Proście, a będzie Wam dane (zapewne;p). W następnym odcinku opiszę opis instalacji i konfiguracji Boost na Visual Studio. Oczywiście pojawią się artykuły opisujące konkretne biblioteki, a także wpisy traktujące o sztuczkach i kruczkach wykorzystania konkretnych elementów boost’a.

Literatura

Było by bardzo źle gdybym nie podał żadnej literatury na ten temat… Częstujcie się.:

[1] „Więcej niż C++. Wprowadzenie do bibliotek Boost”, Bjorn Karlsson- PL/ENG

[2] „Język C++. Metaprogramowanie za pomocą szablonów”, David Abrahams, Aleksey Gurtovoy – PL/ENG

[3] „The Boost Graph Library”, Jeremy G. Siek, Lie-Quan Lee – ENG

Niewiele pozycji, ale zapewniam, że jest olbrzymi support w internecie:D

„dzieci nie róbcie tego w domu 1”

•19 Maj 2009 • 1 komentarz

Tematem dzisiejszego wykładu będzie problem podobny cyklicznego zawierania się klas. Znany, jako klasa A zawiera B, która zawiera C, która zawiera A. Tematem zajęć będzie zapanowanie nad wskaźnikami do różnych klas ustawionymi w podobny sposób.
Każdy dobry programista powinien tego unikać a przynajmniej wiedzieć jak się tego pozbyć, jednak czasami jest to niemożliwe i wtedy należy umieć sobie radzić. Ja przeżyłem to niedawno i nauką wyniesioną z tej potyczki postanowiłem się z Wami podzielić.

Tu znajdziecie zapis moich przeżyć, nauk i przemyśleń związanych z tym tematem.

Kolejny iluzjonista

•19 Maj 2009 • 1 komentarz

W szeregi iluzjonistów wstąpił Daniel, znany także jako lerris.

Historia plusika

•3 Maj 2009 • 1 komentarz

Przemyślenia tidessona podczas zasypiania ^^

Historia plusika

Stop cenzurze Internetu!

•28 Kwiecień 2009 • Dodaj komentarz

Czytajcie:  http://stopcenzurze.wikidot.com

W wielkim skrócie – Unia Europejska planuje wprowadzić ustawy, które pozwoliłby na tworzenie pakietów umożliwiających dostęp do Internetu. Coś na wzór telewizji kablowej – chcesz jakieś niszowe, ale dla Ciebie interesujące kanały – zapłać za nie. To samo chcą zrobić z Internetem.

Powiedzmy NIE!

Internet narodził się jako narzędzie służące do łatwiejszej wymiany informacji i doskonale spełnia swoją rolę. Fakt, znajdują się w nim treści, których tam być nie powinno, ale czym to jest w porównaniu do wszystkich jego zasobów. Wystarczy wpisać interesującą nas rzecz w dowolnej wyszukiwarce i już mamy setki odnośników do różnych stron. Portale społecznościowe, możliwość porozmawiania z osobą z drugie krańca świata, poznawanie innych ludzi i kultury, odkrywanie świata – to wszystko ma być teraz na terenie całej UE „pakietowane”.

Zbliżają się wybory do europarlamentu, więc żaden kandydant nie podniesie tej sprawy, bo momentalnie utraciłby głosy. Nie bądźmy bierni! Pokażmy, że istnieje społeczność internetowa, której podstawą egzystencji jest właśnie owa wolność dostępu do informacji.

PS. Komunikator Gagu-Gadu blokuje ten link w opisach…

Kolejny członek zespołu

•22 Kwiecień 2009 • Dodaj komentarz

Z przyjemnością pragniemy poinformować, że do zespołu illusion3d dołączył azaelcicero.

Jak można zauważyć devlog się rozwija. Pojawiły się już pierwsze wpisy, a pierwsze artykuły są w trakcie pisania. Devlog może jeszcze przejść kilka zmian, ale ogólna koncepcja została już wypracowana.

Zapraszamy do regularnych odwiedzin oraz komentowania naszych wpisów i artykułów. Z naszej strony obiecujemy, dołożyć wszelkich starań, aby poziom devloga był jak najwyższy, a jednocześnie, aby był jak najbardziej przystępny.

Zespół illusion3d

Nowy członek zespołu

•19 Kwiecień 2009 • Dodaj komentarz

Do zespołu dołączył nowy iluzjonista – gienekart.

Zespół illusion3d

 
Follow

Otrzymuj każdy nowy wpis na swoją skrzynkę e-mail.