Software 2.0 2005/04 (124) Programowanie w Javie
Cena detaliczna: 26,75 zł
Twoja cena: 24,10 zł
Wydawnictwo: Software
Oprawa: miękka
Numer katalogowy: 72743
Dostępność: 4 - 7 dni
Poleć znajomym:










Software 2.0 2005/04 (124) Programowanie w Javie - opis
A w numerze:
- Programowanie gridowe w Ibisie. Programowanie rozproszone nie jest łatwym zajęciem. A staje się jeszcze bardziej skomplikowane wówczas, gdy sięgamy po język obiektowy. W takiej sytuacji bardzo wygodnym rozwiązaniem byłoby ukrycie w jak największym stopniu przed programistą warstwy odpowiedzialnej za komunikację między poszczególnymi jednostkami obliczeniowymi. To dobre podejście i można albo przystąpić do realizacji takiego zamysłu osobiście, albo skorzystać z gotowego, w pełni funkcjonalnego, bardzo uniwersalnego środowiska Ibis. Jego współtwórcy, Rob oraz Jason, pokrótce omawiają możliwości Ibisa w tym artykule.
- Java czasu rzeczywistego: zmniejszanie dystansu do C/C++. Zastosowanie Javy w aplikacjach czasu rzeczywistego – jak na razie – jest dosyć ograniczone. Nie dzieje się tak bez powodu; architektura tej platformy nakłada szereg ograniczeń. Jednak nie oznacza to bynajmniej, że nic z tym nie można zrobić. Jean-Marie przedstawia kilka sposobów, dzięki którym można usprawnić działanie kodu w Javie. Co więcej, nie wymagają specjalnej maszyny wirtualnej, poprawnie funkcjonują na każdej platformie (niewyłączając J2ME).
- Tworzenie własnych rozszerzeń JOSSO. Zapewnie wysokiego standardu bezpieczeństwa aplikacjom internetowym jest niezwykle istotne w obecnych czasach. Autoryzacja klientów aplikacji to jeden z najważniejszych aspektów polityki bezpieczeństwa w każdym szanującym się przedsiębiorstwie. JOSSO jest opensourcowym rozwiązaniem tego typu problemów, niewymagającym zbytniej ingerencji w kod aplikacji webowej. Pozwala na pełną integrację z aplikacjami napisanymi w Javie, ASP bądź PHP. W procesie autoryzacji wykorzystywana jest silna kryptografia bazująca na certyfikatach X.509
- Wprowadzenie do AspectJ. Programowanie aspektowe dopiero od kilku lat nabiera na znaczeniu. Ta oryginalna technika projektowania oprogramowania wymaga jednak przezwyciężenia kilku nawyków właściwych programistom języków obiektowych. Na przykładzie AspectJ, jednego z najbardziej rozwiniętych projektów dotyczących programowania aspektowego w Javie, przedstawione zostaną mechanizmy, dzięki którym można ustrzec się wielu problemów podczas tworzenia oprogramowania.
- Pule obiektów PooliT. Jedną z niewątpliwych zalet języka Java jest zwolnienie programisty z obowiązku zarządzania pamięcią. Ale tak jak każdy kij ma dwa końce, tak i to rozwiązanie nie jest pozbawione słabych punktów. Do najważniejszych z nich należy zaliczyć stosunkowo niską wydajność działania aplikacji. Z tego względu powstały różne narzędzie, których zadaniem jest minimalizowanie niekorzystnych efektów automatycznego zarządzania pamięcią. Jednym z nich jest PooliT – biblioteka z niezwykle prostym API, która wykorzystuje pule obiektów.
- Steganografia – tajniki ukrywania informacji. Grafika. Z punktu widzenia steganografii komputerowej pliki graficzne są najbardziej łakomym kąskiem. Pozwalają na osadzenie dużej ilości informacji w niewielkim obrazie, bez widocznej utraty jakości kontenera. Nowoczesne techniki pozwalają ukryć dane w dowolnym znanym formacie pliku, zarówno nie skompresowanym jak i skompresowanym. Wybór odpowiedniego algorytmu uwarunkowany jest specyfiką formatu obrazu. Inne techniki wykorzystuje się w obrazach posiadających paletę kolorów, a inne w nie posiadających, jeszcze inne, w plikach skompresowanych metodami stratnymi.
- Odwzorowania hierarchii klas w relacyjnych bazach danych. Ogromna większość tworzonych obecnie systemów informatycznych powstaje w ramach obiektowego paradygmatu tworzenia oprogramowania. Natomiast standardem składowania danych w dalszym ciągu są bazy relacyjne. Różnice zarówno technologiczne, jak i kulturowe między tymi podejściami często są przyczyną wielu problemów zarówno dla deweloperów aplikacji, jak i administratorów baz danych. Artykuł omawia jedno z podstawowych zagadnień, na które napotykamy łącząc obie technologie: jak reprezentować w relacyjnej bazie danych strukturę dziedziczenia klas.
- Roboty do testowania. Argumenty przemawiające na korzyść automatyzacji testowania wydają się oczywiste i przekonywujące. Z drugiej jednak strony doświadczenie z wielu projektów poucza, że to nie jest takie proste. Przemysł informatyczny obfituje w historie prób automatyzacji, które zakończyły się kosztownym fiaskiem. Powstało nawet nowe pojęcie shelfware ("półkownik"), czyli narzędzia do automatycznego testowania, które zakupiono z nadzieją na radykalne usprawnienie testów, by po pół roku odstawić je na półkę.
- CImg – obrazki i wzorce. Biblioteka graficzna CImg została napisana w C++ i ma jedną ciekawą własność wyróżniającą ją na tle innych tego typu bibliotek. Została bowiem oparta o wzorce. W efekcie cała biblioteka składa się tylko z jednego pliku nagłówkowego o wielkości około 415kB. Nie jest wymagana żadna wstępna kompilacja oraz instalacja CImg w systemie. Wystarczy bowiem dołączyć do swojego projektu plik nagłówkowy biblioteki i można natychmiast korzystać z jej dobrodziejstw.
- Uczymy komputer rozpoznawania pochodzenia win. Niewiele osób odznacza się na tyle wrażliwym i wyćwiczonym podniebieniem, by móc bezbłędnie ocenić przynależność danego wina nie tylko do określonego gatunku, ale także wskazać winnicę, z której pochodzi. W istocie większość miałaby problemy z odróżnieniem wina czystego szczepu Cabernet Sauvignon od takiego z domieszką Carmenere. Ale pokuśmy się na coś bardziej ambitnego. Niechże to komputer ocenia wina. Tyle się mówi o sieciach neuronowych i ich ogromnych możliwościach – wykorzystajmy je zatem. Z pomocą Paolo oraz jego biblioteki Joone być może okaże się to łatwiejsze niż sądzicie.



