wtorek, 28 kwietnia 2009

Rozwiązanie zadań z Pythona

Pod tym adresem są zadania z Pythona, na które przyszykowałem przykładowe rozwiązania. Zadania są skutkiem zajęć prowadzonych na kursie dr Zatopiańskiego.

lista 1 - tutaj
lista 3 - tutaj
lista 4 - tutaj

Resztę plików (txt, html, csv etc) należy pobrać modyfikując adres www, patrząc na nazwy w importach lub pobrać całą paczkę

niedziela, 29 marca 2009

Skróty w Eclipse

Gdzieś to w końcu trzeba zebrać w jedno miejsce, tutaj chyba jest odpowiednie ? :) 

Alt + up, down przenosi wiersz w górę, dół bez zaznaczania całości tekstu w danej lini
Ctrl + d usuwa aktualną linię (dzięki B. :p)
Shift + Alt + up,down ustawiając kursor gdziekolwiek wewnątrz klasy i klikając up (dostateczną ilość razy) zaznaczymy (po iluś kliknięciach, zależy jak głęboko jesteśmy :p) całą klasę (blok), klikając down zmiejszamy zakres zaznaczenia

Metoda napisana kursywą jest statyczna

piątek, 20 marca 2009

Inner Classes

Na pierwszy ogień poszły nie lubiane przeze mnie (chyba tylko dlatego, że z nich nie korzystałem wcześniej) klasy wewnętrzne (ang. Inner Classes). Dzielimy je ze względu na konstrukcję na:

  • klasy wewnętrzne zwykłe (Inner Classes)
  • klasy wewnętrzne w metodach (Method Inner Classes)
  • klasy anonimowe (Anonymous Classes)
  • klasy zagnieżdzone (Static nested Classes)

Inner Classes -

Method Inner Classes - może mieć modyfikator dostępu tylko abstract lub final, nigdy nie mogę mieć ich równocześnie. Aby użyć tej klasy trzeba utworzyć instancę tej klasy, poniżej deklaracji klasy. Klasa ta nie może korzystać ze zmiennych instancyjnych metody na rzecz której była utworzona z prostego powodu, zmienne lokalne w metodzie istnieją tylko w cyklu życia metody, chyba, że pole jest oznaczone jako final !

Statyczna MIS (Method Inner Classes) zadeklarowana w statycznej metodzie może mieć dostęp tylko do statycznych pól klasy zewnętrznej (outer class)

Anonymous Classes -

Static nested Classes - (W przeciwieństwie do Inner Class, tutaj nie mamy żadnego powiązania do klasy zewnętrznej)?, jest to właściwie statyczny członek klasy zewnętrznej zatem odwołujemy się do niego w identyczny sposób jak do innych członków statycznych - poprzez adnotację kropkową co skutkuje tym, że nie ma referencji this. Taka klasa może się odnosić wyłącznie do pól statycznych klasy zewnętrznej, nie mając własnej instancji.

I tak trochę poza tematem, interfejs rozszerzający Collection to miedzy innymi java.util.Queue zawiera m.in. metody element() i peek(), obie zwracają obiekt z głowy. Różnica polega na tym, że w przypadku braku elementów na liście pierwsza metoda rzuci wyjątkiem NoSuchElementException a ta druga zwróci null.

czwartek, 19 marca 2009

Tworzenie usługi przy pomocy frameworka JbossWS

Na cel postawiłem sobie zrobienie prostej aplikacji, która korzystałaby z usługi, która to z kolei zwracałby listę obiektów. Jako technikę wybrałem tworzenie ws od 'dołu', czyli zaczynając od stworzenia klasy części serwerowej z odpowiednia adnotacją @WebService (w przykładzie GetCountryCodeWS.GetCountryCodeWS) i zawierającą jedną metodę (getCountryCode) oznaczoną adnotacją @WebMethod zwracającą ArrayList

Polecam też przeglądnąć (a najlepiej skopiować) skrypt ant, który pakuje projekt do jar'a i deploy'uje naszą aplikację na serwer. Kożdy deploy uruchamia frameworka JbossWS, który zajmuję się generowaniem potrzebych klas oraz plik WSDL (można go podglądnąć w katalogu server/default/data/wsdl) albo w przeglądarce - http://localhost:8080/invest/GetCountryCodeWS?wsdl

Jeżeli mamy gotowe środowisko (jboss+jbossws) to jesteśmy właściwie gotowi do przetestowania naszej usługi, w tym celu tworzymy klase, w której będziemy iterować po zwracanej liście.

źródła projektu

środa, 18 marca 2009

Modelowanie procesów w architekturze SOA - Seminarium

Troszkę się spóźniłem z publikacją tego materiału ale lepiej późno niż wcale...

Seminarium wygłaszałem w październiku zeszłego roku na kursie Prof. dr hab. Bogdana Węglorza. Temat nawiązuje tematycznie do moich zainteresowań jak i do obowiązków zawodowych, i choć opisanie wszystkiego z tematu zajęłoby dużo więcej stron więc jest to właściwie lekki wstęp. Więcej informacji jest po zguglowaniu hasła SOA, dziesiątki interesujących stron więc wymienianie ich tutaj to strata czasu.

Link do prezentacji: Modelowanie procesów w architekturze SOA

Replikacja zakładek pomiędzy naszymi komputerami

Temat stary, przynajmniej dla tak mogło by się wydawać, w firefoxie jest foxmarks ale co jak korzystamy z Opery ? Tutaj z pomocą przychodzi wbudowana opcja o wdzięcznej nazwie “Synchronizacja Opery” w menu Plik/File, potrafi ona replikować nie tylko zakładki ale również adresy odwiedzane stron, notatki czy nawet Speed Dial. Warunkiem jest rejestracja w społeczności Opery pod adresem http://link.opera.com Czekamy tylko na wtyczkę do Chroma :)

Przygotowania do SCJP rozpoczęte

Publiczna deklaracje musi zostać spełniona - zatem publicznie deklaruję rozpoczęcie przygotowania do tego egzaminu (Exam 310-065). Pierwszą rzeczą było zapoznanie sie z pozycjami dostępnymi na rynku i wielkiego zaskoczenia nie wywołam jak napiszę, że jestem szcześliwym posiadaczem tej oto książki:

Scjp Sun Certified Programmer for JAVA 6 Exam 310-065 (Kathy Sierra, Bert Bate)

Lista ciekawych adresów i raczej niezbędnych będę aktualizował na bieżąco.

  • Preparation for Java Programmer Language Certification
  • O technologiach dla języka Java okiem Mariusza Lipińskiego
  • http://www.javablackbelt.com