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 »
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/
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 »
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 »
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 »
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 »
Aby każdy użytkownik mógł zarządzać swoją stroną WWW, trzeba dać mu jakiś dostęp do zasobów. Może to być jakiegoś rodzaju interface dostępny przez przeglądarkę, albo konto FTP z którego korzysta zapewne niemal każdy webdeveloper. Można oczywiście dać każdemu dostęp do katalogu ftproot i mieć nadzieję że nikt nie będzie chciał złośliwie zmieniać plików innego użytkownika. Aby jednak nie polegać na ludzkich intencja należy odpowiednio skonfigurować sobie serwer. Przeczytaj resztę tego wpisu »
Na ostatnich inżynierskich targach pracy i praktytk trafiłem na dość trudny test z C++. Pojawiło się na nim zadanie co do którego miałem wątpliwości szczególnie że sprawdzający stwierdził że nie mam racji. Treść zapamiętałem i postanowiłem sprawdzić nie teoretycznie na kartce, ale po prostu jak się zachowa prawdziwy kompilator. Przeczytaj resztę tego wpisu »
Do odkurzenia tego artykułu skusił mnie link przekazany przez kolegę: http://www.artima.com/weblogs/viewpost.jsp?thread=252441 . Związek jest dość luźny, pod linkiem jest raczej rozważanie na temat przyszłości języków programowania ich mutacji i wspomniane co nieco o Jython’ie. Poniższy wpis jest odkurzony i lekko przeredagowny.
Python to język bardzo wysokiego poziomu w związku z tym tworzenie aplikacji w nim powinno być szybkie. I może samo tworzenie jest, ale jak już się Pythona dobrze zna. Dostarczona dokumentacja jest średnio czytelna i korzystanie z niej nie było zbyt wygodne. Żeby korzystać z docs’ów Pythona trzeba mieć chyba jakiś dar.
Przeczytaj resztę tego wpisu »
Co to są właściwie klasy Proxy? Z pojęciem proxy często się w informatyce można spotkać, mamy serwery proxy, wzorzec projektowy proxy i zawsze się to ogranicza do pośrednictwa, tak też jest i w tym przypadku, tylko że dostarcza to ogromnych możliwości. Na podstawie przekazanego literału klasy ( niektórzy nazywają to obiektem typu Class ) można dynamicznie w trakcie wykonywania programu stworzyć klasy implementujące np. wszystkie metody podanego interface’u. Taka możliwość skłoniła mnie do napisania mini-frameworka umożliwiającego całkowite oddzielenie Widoku aplikacji od Kontrolera. Tak więc w zależności od Kontrolera ten sam guzik widoku może robić 2 różne rzeczy.
Przeczytaj resztę tego wpisu »