pamiętnik programisty

Celem tego wpisu jest pokazanie w jaki sposób stworzyć dynamiczną prostą aplikację WWW wykorzystującą technologię Java Servlets pobierającą dane z lokalnie dostępnej bazy danych Oracle 10g XE z wykorzystaniem JPA. Całość ma obsługiwać Glassfish v3.
Struktura relacyjna w bazie danych jest bardzo prosta, ale wystarczająca do zapoznania z JPA – składa się z tabeli zawierającej dane studentów takie jak imię, nazwisko i z z tabeli opisującej grupy dziekańskie. Obie tabele powiązane są relacją wiele-do-jednego, także grupa może składać się z wielu studentów, natomiast każdy student przynależy do dokładnie 1 grupy.
Przeczytaj resztę tego wpisu »

Scons jest oprogramowaniem którego zadaniem jest ułatwienie budowania binarnej wersji napisanego kodu. Twórcy zachwalają swoje dzieło jako między platformowe, łatwiejsze w użyciu i szybsze. Bazuje na Pythonie i dlatego postanowiłem się nim trochę zainteresować.
Pierwsze próby zakończyłem sukcesem. Co mi się bardzo spodobało to możliwość wyboru kompilatora. Mając do dyspozycji g++ z MinGW oraz Visual C++ Compiler, można zadecydować który z nich ma zostać użyty.
Najprostszy plik z instrukcją zdudowania programu to 1 linia:

Program('main.cpp')

Na Windows domyślnie zostanie wykorzystany (o ile dostępny) kompilator Microsoftu. Jeśli jednak chcemy użyć g++, wystarczy dopisać jeszcze jedną linię:

env = Environment(tools = ['mingw'], CC = 'gcc', CCFLAGS = '-O2')
env.Program('main.cpp')

Piewsze lody przełamane, kolejne próby będą sprawdzały łatwość dołączania zewnętrzych bibliotek jak boost czy qt.

11 sty, 2010

SOAP w Pythonie

Zamieścił: pejotr w: Programowanie| Python

soap_pythonMimo że sam język jest uważany za potężny z dostępną dużą ilością bibliotek, to nie do koońca jest to prawda. SOAP w Pythonie niestety ale po prostu leży. Są 2 biblioteki umożliwiające tworzenie webserviców i tak naprawdę 2 które umożliwiają korzystanie z już utworzonych. Ja swoje próby rozpocząłem od soaplib, biblioteki która została porzucona przez twórców, ale w wyniku tzw. forków w miarę często pojawiają się nowe wersje. Niestety był to błąd.
Przeczytaj resztę tego wpisu »

Zadanie z konkursu algorytmicznego dla uczniów szkół średnich. Zwróciłem na nie uwagę, gdyż współczynnik poprawnych rozwiązań wynosił lekko ponad 30%, a skoro to konkurs dla licealistów to powinienem sobie dać radę. I tu pierwszy szok, nic z tego… Wiedza jaką dysponowałem okazała się daleko nie wystarczająca, a próby znalezienia rozwiązania podanego na tacy spełzły na niczym. Co dodatkowo rozbudziło moją ciekawość to fakt że na forach poświęconych programowaniu, nikt nie szuka pomocy.
Zadanie finalnie okazało się rozbudowaną grą Nim, ale bez znajomości jednego twierdzenia teorii gier prawdopodobnie siedziałbym na tym jeszcze dłuuuugo…
Treść zadania dostępna pod adresem http://hs.spoj.pl/problems/HS09GAME/
Przeczytaj resztę tego wpisu »

26 gru, 2009

Adnotacje w servlet 3.0

Zamieścił: pejotr w: J2EE| Java| Programowanie

W JSR 315: Java Servlet 3.0 Specification zdefiniowano dodatkowe, nowe adnotacje mające na celu ułatwienie tworzenia aplikacji. Referencyjna implementacja została już zawarta w jednym z “nocnych wydań” serwera Glassfish. Dziwi zatem fakt że informacja o tym że servlety nie wymagają już odpowiednich wpisów w deskryptorze rozmieszczenia ( ang. deployment descriptor ) nie została umieszczona w oficjalnym tutorialu. Mimo że przykładowe projekty dla serwletów w SDK 6 zostały napisane od nowa żaden z nich nie wykorzystuje nowych adnotacji. Przeczytaj resztę tego wpisu »

Tagi: ,

24 gru, 2009

NetBeans 6.8 + Glassfish v3 + jee examples

Zamieścił: pejotr w: J2EE| Java| Programowanie

Lekko interesując się Java EE napotkałem pewien problem, związany z kompilacją przykładowego kodu, dotyczącego jeszcze jee 5. Mimo że wszystkie wymagane biblioteki zostały zlokalizowane i dodane do projektu, i tak występowały błędy kompilacji związane z nieodnalezieniem pakietu javax.persistance.
Większość wypowiedzi na forach dotyczy sytuacji w której wspomnianych bibliotek w projekcie nie ma. Ja miałem pewność że pod tym względem wszystko jest w porządku, gdyż przeniesienie projektu na dysk C:\ umożliwiało bezproblemowa kompilację. Rozwiązanie problemu znalazłem tu: http://forums.netbeans.org/post-42466.html. Przed kompilacją projektu bookstore1 należy jeszcze zbudować bookstore będąc w jakiś sposób projektem nadrzędnym. W przeciwnym wypadku pojawi się wspomniany błąd.

Poniższy film przedstawia jak z pomocą NetBeans 6.8 poprawnie zbudować projekt i zdeployować go na serwerze aplikacji. W moim przypadku serwerem aplikacji jest Glassfish v3.

Na deploy’u jednak nie koniecznie musi się skończyć. Wiele przykładów do SDK 5 wymaga połączenia z bazą danych. Tak jest z aplikacją bookstore, wykorzystaną w poprzednim filmie. Mimo że została poprawnie umieszczona na serwerze, nie może pobrać danych, o czym informuje zgłoszony wyjątek. Konfiguracja bazy oraz połączenia

Jej to moje pierwsze screencasty :)

10 paź, 2009

Przezroczyste okienka z WinAPI

Zamieścił: pejotr w: C++| Programowanie

Przezroczyste okna z winAPIWraz z pojawieniem się systemu Windows 2000, pojawiły się nowe funkcje systemowego API. Jedną z nich jest możliwość tworzenia okien o dowolnym stopniu przezroczystości. Efekt jest dość ciekawy i sporo programów ma możliwość ustawienia przezroczystości własnego okienka. Moim celem było umożliwienie sterowania przezroczystością okien centralnie z jednego programu i to nie zależnie od tego czy okno takie zostało do tego przystosowane czy też nie. Po przeczytaniu tego wpisu, każdy samodzielnie będzie mógł napisać podobną aplikację

Przeczytaj resztę tego wpisu »

Tagi: ,

21 wrz, 2009

Karta X100P i Kernel Panic

Zamieścił: pejotr w: VoIP

Karta x100pMimo nowych wersji zarówno Trixboxa i Astersika, problem nadaj pozostaje. Po skonfigurowaniu karty, w czasie wyłączania systemu kernel dostaje zadyszki o czym informuje znienawidzonym komunikatem “KERNEL PANIC”. Od ostatniego wpisu na ten temat ( jeszcze na stary blogu, który trafił szlag podczas aktualizacji WP) trochę się zmieniło. Nie ma już co szukać pliku KXXZaptel, bo znalezienie go oznacza że nasz system jest lekko zacofany – Zaptel jest obecnie znany jako DAHDI. Również zawartość odpowiedniego pliku jest lekko inna, ale mimo wszystko można problem rozwiązać.
Co należy zrobić to w /etc/rc6.d odnaleźć plik KXXdahdi, u mnie jest to K92dahdi i zakomentować poniższy fragment, okolice linii 235:

# Unload drivers
#shutdown_dynamic
#echo -n “Unloading DAHDI hardware modules: ”
#if unload_module dahdi; then
# echo “done”
#else
# echo “error”
#fi
#if [ "$LOCKFILE" != '' ]; then
# [ $RETVAL -eq 0 ] && rm -f $LOCKFILE
#fi

i zamykanie systemu zaczyna działać jak należy. Może sam problem nie jest zbyt uciążliwy gdyż działający serwer VoIP nie jest często resetowany. Ale zabawa zaczyna się gdy zaistnieje potrzeba przeprowadzenia takiej operacji zdalnie…

02 wrz, 2009

Tworzenie okienka w asm

Zamieścił: pejotr w: Programowanie

Wiadomo że stworzenie okienka przy wykorzystaniu języka C i WinAPI nie jest zadaniem trudnym. Nawet w dokumentacji od MS można znaleźć gotowy przykład. Jest to natomiast zadanie bardzo żmudne i z reguły z pełnym zrozumieniem pól i dopuszczalnych wartości dla wymaganych struktur robi się to tylko raz. Potem albo się kopiuje gotowy standardowy kod wprowadzając tylko pewne czasami zmiany odbiegającego od typowego zastosowania, albo przyjmuje że “się umie” i “zna fundament” i przesiada na WindowsForms. Ale można pójść w drugą stronę, stworzyć okienko w assmeblerze i tym samym uzyskać miano rycerza hardcoru. Przeczytaj resztę tego wpisu »

Tagi: ,

05 lip, 2009

O JSP słów kilka

Zamieścił: pejotr w: J2EE| Java| Programowanie

W swoim wcześniejszym wpisie, zatytułowanym JSP, JSF, GlassFish – mini słowniczek napisałem że JSP jest wykorzystywane jako warstwa widoku w modelu MVC. Jest to oczywiście prawda ale jak się niedawno dowiedziałem, w znaczny sposób spłyciłem zastosowanie JSP. Okazuje się bowiem że samo JSP jest idealnym sposobem na tworzenie prostych aczkolwiek dynamicznych stron WWW w których nie ma potrzeby podziału na poszczególne warstwy Model – Widok – Kontroler. Co więcej okazuję się że każda strona JSP również jest servletem i zachowuję się w sposób podobny.
Przeczytaj resztę tego wpisu »

Tagi:

O mnie:

pejotrWitam, nazywam się Piotr Doniec, w internecie występuję pod nickami 'pejotr' oraz 'doniczek'. Obecnie jestem studentem 3 roku informatyki na Politechnice Warszawskiej na wydziale Elektroniki i Technik Informacyjnych.

Kategorie