wtorek, 7 lipca 2015

W tym roku zamiast konfitur, szarlotka.

Chwała!
Jak już pisałem we wcześniejszym poście w tym roku plan corocznego wyjazdu an warszawską Confiturę szybko uległ dezintegracji. Dlaczego? Ano dlatego, że w tym roku termin skolidował z dziewiąta edycją Festiwalu Legend Rocka.
 - We wcześniejszych latach nie przeszkadzało? - Zapyta Ktoś.
 - No nie, bo pierwszy raz byłem na tym festiwalu. - Odpowiem zgodnie z prawdą.
 - Pierwszy? To nagle tak?
 - Tak. Ale wcześniej nie przyjeżdżali Franek, Billy i Dusty. 
 - Oni?! To trzeba było zabrać mnie ze sobą!
Dokładnie tak. Priorytety. Confitura, niezależnie od swojego wysokie poziomu po prostu musiała w tym starciu przegrać. Jeżeli przyjeżdżają Żywe Legendy, jeden z najlepszych zespołów w historii rock'n'rolla (a w jego rytmie wszak me serce bije i bić będzie po kres), Idole od czasów dzieciństwa. Dwoma słowy - ZZ Top. Jedyne trzy godzinki drogi od domu. Nie można było przegapić.
Na przystawkę został podany norweski zespół Kelvin. Całkiem przyjemny pop-rock czy jak tam się ten gatunek nazywa. W każdym razie zagrali ostrzej i bardziej energetycznie niż na jedynym klipie jaki mi się udało znaleźć. Tak więc zobaczymy co z nich wyrośnie.

Natomiast co do Gwiazd. Cóż. Panowie w wieku emerytalnym, wyszli i od pierwszego uderzenia w struny poleciała taka masa energii, że niejeden młodzieniec może tylko pozazdrościć. Godzina dwadzieścia czystego rock'n'rolla. Panowie pokazali swoją maestrię grając znane i lubiane hity z przekroju całego okresu działalności. Znalazły się i nowe I Gotsta Get Paid czy Chartreuse, jak i starsze Gimme All Your Lovin', Tush, Legs, La Grange... Zresztą cała setlista do zobaczenia tutaj. Były miłe akcenty ze strony Billego, jak „Dobry Wieczór”, „Dobrze się bawicie?” czy napis Piwo zamiast Beer na gitarze (no i My Head Is In Polski w refrenie :)). Jakieś minusy? Jedynie to, że za krótko! Za dodanie do zestawu Rough Boy czy Viva Las Vegas myślę, że nikt by się nie obraził.

środa, 1 lipca 2015

Pół roku wakacji, czyli od czasu do czasu coś wypada skrobnąć...

Chwała!
Aż sam nie wiem, którą z piosenek Organka na początku tego wpisu zacytować... O Matko! azali Głupi Ja... Tyle czasu minęło od ostatniego, miałem niby postanowienie, że się wezmę, a tu wyszło, że autor typu D.U.P.A (że tak nawiążę do innego utworu z czasów najnowszych). Cóż, skoro już się zabrałem, to w ramach leczenia sumienia, szybkie podsumowanie tego co się wydarzyło w ostatnim półroczu:
  • Odbyła się kolejna edycja DevCrowd. Jak zwykle warto było, dobry poziom prezentacji, bardzo dobry organizacji, genialny uczestników ;) Na wyróżnienie in plus chciałbym wskazać prezentację „Internet Of Thing - czas rozpocząć przygotowania” Pawła Spychalskiego. Bardzo przyjemnie poprowadzone hipotetyzowanie i wróżenie z fusów jak rozwinie się temat, który wydaje się mieć podstawy być czymś całkiem znaczącym w bliższej lub dalszej perspektywie. Na minus natomiast Robert Pankowecki i jego „dlaDeveloperów odDeveloperów - jak sprzedawać wiedzę programistom”. Nie wiem czy nie najgorsza prezentacja na jakiej byłem kiedykolwiek. A co najgorsze? Język. Nie można było się skupić na ewentualnej treści jaką prezenter miał do przekazania, gdyż nie szło zidentyfikować języka w jakim była ona prowadzona. Ja rozumiem, że w naszej branży niestety anglicyzmy dość agresywnie się w nasz język codzienny wbijają, ale są chyba jakieś granice przyzwoitości i szacunku dla publiczności. Skoro kulejemy w języku ojczystym i mamy go w głębokim poważaniu, to może szczerzej będzie się zdecydować na ukochany i jedynie słuszny angielski? Swoją drogą lingua franca nie na darmo ma francę w nazwie... A-ha... Specjalnie dla prelegenta, co oznacza w polskim wyraz audiencja: „oficjalne posłuchanie udzielone komuś przez osobę na wysokim stanowisku”. Zdziwko niezłe, nie?
  • Wystartowała nowa inicjatywa społecznościowa - Papryqarz. Czyli taki Spin 2.0, o ile ktoś jeszcze pamięta tamte inicjatywy. Rozpoczęło się nieźle, frekwencja dopisała. Ciekawe jak wytrzyma próbę czasu. Na razie zapowiada się kolejne spotkanie, tak więc pożyjemy, zobaczymy jak i w co się to rozwinie.
  • Odbyło się też kolejne spotkanie naszej jugi. Tym razem w formie tzw. unconference czyli luźnych pogadanek w wianuszkach zainteresowanych osób, na wybrane tematy. Było dość ciekawie, ciasteczka, herbatka. Nowe miejsce w klimatyzowanych pomieszczeniach Technoparku. Trochę nie dopisała frekwencja, ale nowe twarze się pojawiły, więc jest szansa, że coś drgnie nam do przodu.
  • Miała miejsce też rejestracja na tegoroczną Confiturę, która już w tą sobotę. Rejestracja w nowej formie, bilety się rozeszły, cegiełki wyprzedane. Ciekawym jak nowa formuła wpłynie na frekwencję (procentowo - rzeczywistych uczestników do zarejestrowanych) i zainteresowanie uczestników pełnią sesji. No i znów nasz człowiek będzie się prezentował. Liczę na powtórkę dla Jugi!  Ja w tym roku brać udziału nie będę, nawet nie próbowałem rejestrować się. Dlaczego? Bo szorstki ze mnie chłopiec...
  • Byłem w kinie. Na nowym Mad Maxie. Jako kolejna część? Nie urywa, choć poziom trzyma. Jako film „przygodowy”? Całkiem fajnie, jazda bez trzymanki, momentami odjazd przerysowań ale trzymający się pewnej konwencji i nie skaczący przez rekina. W każdym razie nie żałuję, bawiłem się dobrze. I tylko zachodzę w głowę co to za marka, że po trzydziestu latach na pustyni opony w stanie nówka igła ;) Ale to tylko takie moje sapanie... ;)
I to było by na tyle.

sobota, 31 stycznia 2015

JRebel, ADF i nieprzeładowane strony.

Chwała!
Po długiej, chyb nawet zbyt, przerwie czas wysilić swoje pozostałe szare komórki, póki fałdy na korze jakieś zostały. Okazja się akurat trafiła sama, bo w ramach obowiązków zawodowych mam okazję sprawdzić w boju produkt firmy ZeroTurnaround - JRebel.
Właśnie w trakcie tego sprawdzania napotkałem na początkowo dość zagadkowy problem, który poniżej postaram się naświetlić. Otóż, mam ci ja aplikację zewnętrzną, podbudowę czy też rdzeń systemu, w technologii Oracle ADF. Natomiast sam dopisuję do niej moduły biblioteki rozszerzeń dostosowującej tenże rdzeń do zachcianek i zapotrzebowań klienta. No więc dopisuję sobie nowy tzw. fragment strony, wszystko ładnie mi JRebel przeładowuje, jest fajnie. Biorę się za następny i... i nic, tak jakby JRebel zmian nie widział. Co ciekawe, przepływ odświeża, ziarna też, tylko sama strona jak wyglądała tak wygląda. Ki czort? Hmmm... Po restarcie zmiany widać, ale nowych znów niet. Hmmm... Rzut oka w logi, i co? I wszystko wygląda na to, że... działa.
2015-01-29 08:26:23.947 TRACE [IntelliJFSNotify] >> path\to\my\changed\PageFragment.jsff
2015-01-29 08:26:23.947 INFO  [IntelliJFSNotify] Event 'CHANGE' on: 'path\to\my\changed\PageFragment.jsff'
2015-01-29 08:26:23.955 TRACE [IntelliJFSNotify] >> CHANGE
2015-01-29 08:26:31.733 INFO  [ADF-Core] ADF metadata resource modified: file:/path\to\my\changed\PageFragment.jsff
2015-01-29 08:26:31.767 DEBUG [ADF-Core] ResourceMonitor instance named 'BindingRequestHandler' returns new positive result
2015-01-29 08:26:31.767 INFO  [ADF-Core] Purging page and view definition cache
2015-01-29 08:26:31.767 INFO  [ADF-Core] Reinserting juMom definition
2015-01-29 08:26:31.767 DEBUG [Mojarra] FacesConfigReloader.reload invoked
2015-01-29 08:26:31.767 DEBUG [Mojarra] Capturing NavigationHandler state.
2015-01-29 08:26:31.767 TRACE [Mojarra] NavigationDiff: null
2015-01-29 08:26:31.767 INFO  [Mojarra] Reloading configuration
2015-01-29 08:26:31.767 INFO  [Mojarra] Application does not allow to unsubscribe listeners
2015-01-29 08:26:31.767 INFO  [Mojarra] Application class: com.sun.faces.application.ApplicationImpl
2015-01-29 08:26:31.767 TRACE [Mojarra] Reload on oracle.adfinternal.view.faces.lifecycle.LifecycleImpl@75aec8d1 and org.apache.myfaces.trinidadinternal.context.FacesContextFactoryImpl$CacheRenderKit@5b5cca6 with sc weblogic.servlet.internal.WebAppServletContext@79606145 and cm com.sun.faces.config.ConfigManager@613b3643
2015-01-29 08:26:31.767 TRACE [Mojarra] Clear done
Zagwozdka coraz większa. O! Przelogowanie też powoduje „odświeżenie” zmian. Zastanówmy się poważnie...
Bingo! Tak jest! Cóż to więc okazuje się naszym winowajcą? Ano, aplikacja ma skonfigurowane dostosowywanie (customization) na poziomie użytkownika (UserCC). To powoduje, że każda zmiana na stronie stanu np. zwinięcia segmentu akordeonu czy też widoczności kolumn w tabeli jest zapamiętywane w MDS i nakładane w każdej sesji użytkownika. Fajny mechanizm, dzięki któremu korzystający z aplikacji ma taki układ stron w aplikacji jaki mu wygodnie. Problem w tym, że zmiany te nie są przez mechanizmy WebLogica nakładane na „oryginał” w momencie wchodzenia na stronę, tylko przy logowaniu się użytkownika. Przez co zmiany „przeładowywane” przez JRebel nie znajdowały odzwierciedlenia w treści serwowanej do przeglądarki. Wyjście? Skasowanie plików *.jsff.xml z odpowiedniego podkatalogu lokalnego MDS. No i teraz furczy aż miło. Można wrócić do generowania kolejnych błędów w oprogramowaniu ;)

P.S. Przy okazji jest to setna notka na blogu. Sam nie wiem, czy to dużo, czy mało, ale pękła i już!