08 czerwiec 2010

Czerwcowe spotkanie Szczecin JUG - Michał Gozdalik (ponownie!)

Zapraszam Was ponownie na spotkanie Szczecińskiej Grupy Użytkowników Java. Drugi raz będziemy mieli okazję posłuchać Michała Gozdalika, tym razem z tematem:
"Funkcjonalne testy równoległe"

-- Opis narzędzi TestNG i Selenium-Grid pod katem testowania równoległego i rozproszonego. W tej części przedstawiona zostanie część teoretyczna mająca na celu wprowadzenie w tematykę rozproszonego testowania równoległego. Wytłumaczone zostaną mechanizmy równoległe w narzędziu TestNG i Selenium-Grid
-- Konfiguracja i zestawienie Selenium-Grid jako środowiska testowego. W tym punkcie przedstawiony zostanie sposób zestawienia środowiska testowego włączając konfigurację poszczególnych hostów. Stworzona zostanie macierz (Grid) trzech komputerów jako środowisko uruchomieniowe dla Selenium -Grid
-- Przykładowy scenariusz testowy. Omówiony zostanie wzorzec pisania testów funkcjonalnych pod Selenium-Grid uwzględniający potrzeby częstych zmian wymagań w metodykach tworzenia oprogramowania typu Agile
-- Objaśnienie kodu źródłowego testów. W tym punkcie omówione zostaną najczęściej używane części API Selenium. Wytłumaczone zostaną również wzorce poprawnej implementacji mechanizmów dynamicznych stron obsługujących technologię AJAX.
-- Uruchomienie przykładu. Demonstracja działania testów na trzech komputerach i trzech rzutnikach.
Czas: 2 godziny

Do wygrania licencja na jeden z wymienionych produktów firmy JetBrains:
a. IntelliJ IDEA Personal License
b. ReSharper Personal License
c. TeamCity Build Agent
d. Ruby Mine

oraz

licencja na agenta JVM JRebel.

O Michale: Absolwent kierunku informatyka Politechniki Szczecińskiej katedra Inżynierii Oprogramowania. Od dwóch lat zajmuję się zawodowo testowaniem korporacyjnych serwisów internetowych dla firm z branży telefonii komórkowej i ubezpieczeniowej. Student studiów doktoranckich ZUT, katedra Inżynierii Oprogramowania.

Miejsce: WI ZUT (PS), sala 128
Godz. 18:00
Data: 16.06.2010

Serdecznie zapraszamy!

14 kwiecień 2010

Zapraszam na spotkanie Szczecin JUG - Filip Pająk o TestNG

Zapraszam Was w imieniu swoim i Filipa na spotkanie, którego tematem będzie:
"Nie tylko JUnit. O TestNG słów parę a nawet kilka."

Filus jest cudownym (bo osiągnięcie tego zakrawało na cud) absolwentem kilku etapów powszechnej edukacji, w tym Wydziału Informatyki Politechniki Szczecińskiej. Od pięciu lat zawodowo udziela się jako programista jawy, a od lat dwóch z kawałkiem próbuje swych sił także jako tester oprogramowania. Pewnie dlatego Los postawił go przed nieuchronnym spotkaniem z TestNG, a o wrażeniach z tego rendez-vous, a nawet może tête-à-tête, chętnie poplotkuje w miłym gronie szczecińskiego JUG-a.

Do wygrania licencja na jeden z wymienionych produktów firmy JetBrains:
a. IntelliJ IDEA Personal License
b. ReSharper Personal License
c. TeamCity Build Agent
d. Ruby Mine

oraz

licencja na agenta JVM JRebel.

Miejsce: WI ZUT (PS), sala 200
Godz. 18:00
Data: 22.04.2010

Serdecznie zapraszamy!

12 luty 2010

Jeśli Twój produkt jest świetny, nie musi być dobry

Ważne by faktycznie powstał!

Temat tego postu zaczerpnąłem z wpisu Paul'a Buchheit'a If your product is Great, it doesn't need to be Good.

Naszła mnie przy tym pewna refleksja.....
Wielu z nas prędzej czy później staje przed wizją (lub chce stanąć) stworzenia czegoś swojego. Czegoś co pozwoli na dłuższy rozwój siebie jak i aplikacji, pozwoli zarobić i poczuć się dumnym ;-). Im więcej się o tym myśli, tym bardziej zagłębiamy się w szczegóły. Zastanawiamy się jakież to sexy capabilities mogą się pojawić, mogą sprawić, że nasza aplikacja pokona wszystkie inne podobne (ciężko teraz wymyślić coś od zera...) funkcjonalnością, łatwością użycia. Zbieramy nasze myśli, zapisujemy je, nie chcąc stracić wymyślonych pod prysznicem koncepcji. Wyobrażamy sobie sukces jaki możemy osiągnąć. I to dobrze, bo motywuje do dalszej pracy i nie pozwala spocząć na laurach.

Jak wielu z Was ma za sobą takie uczucie? Jak wielu z Was chciało rozpocząć lub rozpoczęło coś co miało naprawdę duże szanse być tym czymś o czym się mówi, ale z jakichś (prozaicznych?) powodów się nie powiodło? Ileż to trzeba motywacji i samozaparcia, aby znaleźć czas i żmudnie, konsekwentnie dążyć do celu. Ileż to wsparcia ze strony naszych najbliższych potrzebujmy, aby znaleźć siły nad pracą po pracy (do pewnego stopnia jest to przyjemność, ale jak długo?), nad własnymi wyrzeczeniami, a w szczególności nad mobilizacją samego siebie, gdy poczucie winy z powodu jeszcze mniejszej ilości czasu spędzonego bezpośrednio z rodziną się zwiększa. I jeszcze te słowa Wiesz kochanie, że to dla Twojego, mojego, naszego dobra.... Może się wydawać, że teraz koloryzuję, ale gdy już zaangażujecie się w coś pełnym sobą to wierzycie, że będzie to warte swojej ceny i dacie z siebie wszystko. A to wymaga poświęceń.

Sam teraz stoję przed wizją stworzenia czegoś w moim przekonaniu interesującego. Ale czy mam rację? Czy mój wybór jest sensowny i czy okaże się warty swojej pracy, włożonego wysiłku? Nic innego jak tylko spróbować i żałować (ewentualnie!) po fakcie. Życzcie mi powodzenia. Ja Wam życzę :-)

27 lipiec 2009

Najlepsze praktyki projektowania stron w Google Web Toolkit




Ostatnio chciałem poduczyć się odnośnie wzorca Model-View-Presenter, który jest coraz bardziej popularny i częściej brany pod uwagę nić MVC. Polecam powyższą prezentację z tegorocznej konferencji Google IO. Jest ich nawet więcej, gdy tylko czas pozwoli postaram się ich zgłębić więcej. Muszę się w końcu wziąć do roboty i poprawić tę magisterkę zrobioną w rekordowo krótkim czasie, żeby nie było wstyd upublicznić na kenai.com :-)

Poniżej krótkie wnioski:
  • przy deklaracji pól, list czy definiowaniu parametrów używaj implementacji w wywołaniach RPC oraz w kodzie klienckim - nie interfejsów. Aplikacja będzie szybsza a kodu JS mniej,
  • korzystaj z command pattern w wywołaniach RPC,
  • zwróć uwagę na tzw. event bus, czyli miejsce gdzie będzie operował na zdarzeniach. Pozwoli to na lepszą organizację cache'owania asynchronicznych wywołań, testowanie (klasa GWTMockUtilities, czy jMock dla GWT)centralizację obsługi błędów oraz łatwiejszą i lepszą separację kodu niż MVC,
  • korzystaj z Google GIN po stronie klienta - mniejsza ilość powtarzalnego kodu w EntryPoint'ach,
  • na wczesnym etapie zajmij się obsługą historii.