pamiętnik programisty

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:

28 cze, 2009

Wstęp do servlet’ów

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

A czym że to jest ? Servlet API to zbiór klas i interface’ów które umożliwiają komunikację z użytkownikiem i dynamicznie przygotowywanie treści w odpowiedzi na żądanie. Servlet jest to napisana w języku Java klasa, ładowana i obsługiwana poprzez serwer WWW lub serwer aplikacji współpracujący z serwerem WWW, która umie odebrać żądanie i odpowiednio obrobić i wygenerować odpowiedź. Ci którzy mieli styczność ze skryptami CGI zapewne zauważą podobieństwa, Servlet jest prawie tym samym co skrypt PHP. Jednak ja mówi stare chińskie przysłowie „prawie robi wielką różnicę”.
Przeczytaj resztę tego wpisu »

Tagi:

22 cze, 2009

Magiczne delete []

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

Prawdopodobnie nikt się nie zastanawiał jak dokładnie działa delete [], wystarczy wiedzieć że usuwa wszystkie obiekty umieszczone w dynamicznie zaalokowanej tablicy. Jeżeli obiekty posiadają destruktor to jest on uruchamiany, a jeśli nie to pamięć jest po prostu zwalniana. Muszę przyznać że mnie samemu też nigdy nie przyszło na myśl że może się tam kryć coś „magicznego”. Trawało to do czasu aż zupełnie przypadkiem trafiłem na wpis na blogu który opisuje SKĄD DELETE [] WIE ILE OBIEKTÓW NALEŻY USUNĄĆ.
Nie będę kopiował cudzego wpisy/odkrycia jedynie po przetłumaczeniu na język ojczysty więc odsyłam do źródła oraz zachęcam do lektury (tytuł dodatkowo mówi sam za siebie): http://mdzahidh.wordpress.com/2007/08/24/a-little-cc-recipe-you-can-live-without-knowing/

Tagi:

12 cze, 2009

Z C++ zagadka nr 3

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

Kompilator zrobi dokładnie to co chcesz. DOKŁADNIE!

i właśnie dlatego trzeba uważać. Ta zagadka jak i pozostałe ma na celu zwrócenie uwagi na miejsca które wydają się oczywiste a moga wprowadzić wiele zamieszania i niepotrzebnych nerwów. W końcu nie od dziś wiadomo że najgroźniejsze błędy znajdują się w „kodzie który napewno jest dobrze”. Tym razem zagadka wymaga trochę więcej od czytelnika, nie wystarczy znajmość C++, trzeba się jeszcze wykazać odrobiną znajomości biblioteki boost. Przeczytaj resztę tego wpisu »

Tagi:

06 cze, 2009

Z C++ zagadka nr 2

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

Zagadka nr 2 bardzo blisko związana z zawiłościami języka programowania c++, choć okazuje się że dotyczy także innych, w tym np. Javy. Kod wydaje się banalnie prosty. Jednak jak mówi „stare chińskie przysłowie”  – „Diabeł tkwi w szczegółach”.
Przeczytaj resztę tego wpisu »

Tagi:

15 maj, 2009

Funkcje wirtualne w c++

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

Mechanizm funkcji wirtualnych, występujący także pod nazwą „późnego wiązania”, jest bardzo ważny elementem języka programowania. Pozwala na wywołania innej wersji metody w zależności od obiektu na rzecz którego metoda jest wywoływana.  Największe zastosowanie funkcji wirtualnych to umożliwienie przechowywanie obiektów w kolekcjach jako obiektów klasy bazowej, a wywoływanie metod które dotyczą faktycznego typu obiektu. Przeczytaj resztę tego wpisu »

18 kwi, 2009

Zend_Auth i Doctrine

Zamieścił: pejotr w: Programowanie

O łączeniu frameworku Zenda z ORM Doctrine wiele w internecie napisano. Ale trzeba pamiętać że wiele bibliotek zawartych w frameworku również może wymagać połączenia z bazą danych, a domyślnie wymagają użycia Zend_Db_Table. Na szczęście taka sytuacja została przewidziana przez twórców którzy udostępnili odpowiedni zestaw interface’ów umożliwiając w ten sposób tworzenie własnych adapterów a tym samym dostosowanie komponentów wedle własnych zachcianek. Przeczytaj resztę tego wpisu »

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