Alior Bank assistance

Miałem przed chwilą okazję przetestować w działaniu pakiet Pomocni Fachowcy, który Alior Bank z Mondial Assistance zaproponował ostatnio swoim klientom. Potrzebowałem mianowicie pomocy drogowej. Poniżej przebieg akcji ‘reanimacja-mojego-auta’:

6.30 – telefon na jak się okazało przeznaczoną specjalnie dla klientów Aliora Infolinię Assistance (tel. 0048 22 563 11 15). O dziwo nie zaspana Pani odebrała ode mnie podstawowe dane i poinformowała, że po mojej autentykacji i autoryzacji do skorzystania z tego pakietu do mnie ‘czemprędzej’ oddzwoni.

6.35 – obiecany telefon od Pani (plus gratisowa walidacja czy nie pomyliłem swojego numeru telefonu podczas poprzedniej rozmowy :) ). Powiedziałem co się stało, gdzie jestem itp. Zostałem poinformowany, że pomoc drogowa powinna się ze mną wkrótce skontaktować.

6.45 – telefon od pomocy drogowej, ustalenie znaków rozpoznawczych itp itd. Pomoc będzie za godzinę bo są korki.

7.40 – telefon z pomocy drogowej, żebym ruszył cztery litery na parking bo już są.

7.42 – 8.00 – kilka uderzeń młotkiem, parę bujnięć samochodem, kilka mocnych szarpnięć za drążek do hamulca ręcznego – wszystko jak się okazało skutecznie. Co fachura to fachura ;)

8.00 – la grande finale. Zero papierków, uścisk dłoni i po sprawie.

PS. Piszę to, bo nigdy w życiu nie korzystałem z takich ‘darmowych bonusów do różnych produktów na czarną godzinę’ i sądziłem, że jeśli coś jest za darmo to i jakość jest… średnia. Jak się okazało firma Mondial i partnerzy w terenie dają radę! Do niemiłego następnego.

JSF – automatyczna zamiana null na 0 lub pusty string

Myślalem, że JSF nie ma już przede mną większych tajemnic, gdy w projekcie objawił się nam następujący błąd:

JSF domyślnie z automatu zamienia formularzowe puste inputy na odpowiadające im 0 lub puste stringi. Inaczej mówiąc jeśli użytkownik do takiego inputTextu nic nie wpisze to referencja age zamiast być pusta (null) wskazywać będzie na 0.

<h:inputText id="age"
value="#{exampleManager.age}" converter="IntegerConverter" />

Gdyby age było Stringiem, wówczas JSF przypisałby pod niego “”.

Rozwiązanie tego ‘problemu’ okazało się trywialne choć dziwne (stąd ta notka). Należało zmienić domyślną wartość flagi Tomcata COERCE_TO_ZERO poprzez ustawienie odpowiedniego parametru uruchomieniowego:

-Dorg.apache.el.parser.COERCE_TO_ZERO=false

Domyślna wartość COERCE_TO_ZERO ustawiona jest na true. Oczywiście można tego dokonać również z poziomu kodu aplikacji – jak dla mnie rozwiązanie takie jest dużo bardziej elastyczne i eleganckie:

System.getProperties().
put("org.apache.el.parser.COERCE_TO_ZERO", "false");

Projekt w którym objawił się ten problem pracuje na JBossie (posiadającym w sobie Tomcata), jak aplikacja ta zachowała by się na innych serwerach aplikacyjnych i jak wówczas poradzić sobie z opisywanym ‘wymuszaniem’ – kiedyś może się dowiem…

mgr inż. Dariusz Ludera …

…brzmi dumnie :-) 16 września 2009 udało mi się obronić moją pracę magisterską i jednocześnie uzyskać tytuł zawodowy magistra inżyniera. Tematem mojej pracy mgr była Analiza pakietu programistycznego środowiska iSeries (System i Development Environment Analysis).

W ramach niniejszej pracy poddałem analizie dostępne na rynku narzędzia programistyczne na platformę IBM i. Oprócz opisu technologii programistycznych możliwych do wykorzystania na tejże platformie, skupiłem się na dokonaniu charakterystyki narzędzi wspomagających pracę przy tworzeniu nowych i rozwijaniu wcześniej stworzonych aplikacji. Praca miała na celu przeanalizowanie zakresu wykorzystania poszczególnych narzędzi, które mogą być używane w procesie wytwarzania aplikacji oraz odpowiedzenie na pytanie czy technologie i narzędzia stworzone kilka dekad temu nadają się do wykorzystania podczas budowania systemów zgodnych z dzisiejszymi standardami (głównie z podejściem SOA). Analizie poddano podejście firmy IBM do rozwoju swoich narzędzi i środowisk programistycznych ułatwiających pracę programistów związanych z tworzeniem aplikacji zarówno w nowych, jak i starych technologiach. Przy opisie poszczególnych technologii, dokonałem oceny stosowalności każdej z nich w aplikacjach tworzonych obecnie na potrzeby sektora finansowego i bankowego. W końcowej części niniejszej pracy pokusiłem się o znalezienie optymalnego narzędzia dla programistów i podanie zestawu najlepszych moim zdaniem technologii, które połączone ze sobą, stanowić będą podstawę do tworzenia oprogramowania dla wyżej wymienionych sektorów, dla których dedykowana jest niniejsza platforma.

Nadmienię jeszcze tylko, iż praca ta realizowana była we współpracy (i właściwie na zamówienie) Fortis Bank Polska SA.

Jeśli moja Alma Mater zrezygnuje z prawa do pierwodruku, opublikuję ją z pewnością (najwcześniej 16.03.2010r) na łamach tej strony. Myślę bowiem, że może ona przydać się komuś kto został postawiony przed zadaniem poznania nowoczesnych webowych technologii dla IBM i. Oprócz bowiem wspomnianego wcześniej przeglądu technologii, stworzyłem 6 aplikacji w tych technologiach i pokazałem jak wdrożyć je w zwirtualizowanym środowisku IBM i.

Lista aplikacji:

  1. CL1.CLLE – prezentacja możliwości języka CL jako podstawowego narzędzia programistycznego umożliwiającego manipulację na obiektach i5/OS oraz danych zgromadzonych w zintegrowanej z i5/OS relacyjnej bazie danych DB2.
    • funkcjonalność – wykonanie zadanego w parametrach uruchomieniowych skryptu SQL (SQLSRC47) z instrukcjami DDL i DML
    • wykorzystane technologie – CL, SQL
  2. RPG1.SQLRPGLE – pokazanie składni języka RPG, której wykorzystanie zalecane jest obecnie przez IBM.
    • funkcjonalność – insert do bazy danych w fixed-format, odczytanie zawartości tabeli CUSTOMER w free-format
    • wykorzystane technologie – zagnieżdżenie poleceń SQL w obu wyżej wymienionych rodzajach składni RPG
  3. RiaExample
    • a) prezentacja technologii związanych z JEE, które stanowić mogą alternatywę dla RPG jeśli chodzi o implementację aplikacji zawierającej logikę biznesową opartą na danych zgromadzonych w bazie danych DB2 for i5/OS.
    • b) pokazanie technologii BIRT jako alternatywy dla RPG jeśli chodzi o generowanie biznesowych raportów dla potrzeb przedsiębiorstwa.
      • funkcjonalność – aplikacja posiada dwa moduły:
        • CRUD – pozwalający na podgląd i modyfikację danych z DB2 for i5/OS
        • raporty – pozwalający na generowanie raportów do HTML, PDF, MS Word i MS Excel
      • wykorzystane technologie – aplikacja stworzona została w modelu RIA z wykorzystaniem następujących technologii: JSP, serwety, JS, zestaw komponentów JSF RichFaces, JDBC w implementacji JTOpen, Apache log4j, Eclipse BIRT
  4. WsRiaExample – stworzenie tej aplikacji, miało na celu zaprezentowanie technologii Web Services, mogącej posłużyć do zbudowania architektury softwarowej zgodnej z metodologią SOA, opartej o IBM i.
    • funkcjonalność – wystawianie usług związanych z pobieraniem i obróbką danych z DB2 for i5/OS
    • wykorzystane technologie – Apache Axis2 z modułami zapewniającymi bezpieczeństwo wysyłanych komunikatów: WS-Security (Rampart) i WS-Addressing
  5. RichClientExample
    • a) przykład podejścia do tworzenia aplikacji biznesowych przed upowszechnieniem się J2EE
    • b) przykład kienta konsumującego usługi Web Services.
      • funkcjonalność – aplikacja posiada dwa moduły:
        • program typu Rich Client, realizujący funkcjonalność CRUD
        • klient odpytujący o dane Web Service z aplikacji numer 4.
    • wykorzystane technologie – J2SE, Swing, Apache Axis2, Apache log4j
  6. GrailsRiaExample
    • a) pokazanie, że na IBM i da się uruchamiać aplikacje zaimplementowane w nowoczesnych, dynamicznych, skryptowych językach programowania, wspomagających biznes dzięki którym możliwe jest ekspresowe tworzenie lekkich serwisów internetowych, przydatnych np. w marketingu nowych produktów (w tym finasowych)
    • b) przykład obudowania technologii znakowych aplikacją z webowym interfejsem użytkownika
      • funkcjonalność
        • webowa aplikacja realizująca funkcjonalność CRUD
        • o refacing komend języka CL
      • wykorzystane technologie – Groovy, Grails, pluginy Grails: grails400utils, jtopen

Praca ta (a zwłaszcza rozdział 1.) może być także moim zdaniem przydatna dla osób, które dopiero zaczynają przygodę z platformą IBM i i poszukują rzetelnych informacji na jej temat.

ludera_dariusz_dyplom_ukonczenia_studiow

IBM EGL fail

IBM jest obecnie na etapie lansowania technologii EGL, umożliwiającej tworzenie webowych aplikacji RIA dla IBM i. W telegraficznym skrócie jest to zlepek generatorów kodu Java, Java Script i COBOL.

Na stronach EGL Caffe tworzony jest blog pokazujący “możliwości” tej technologii. Jak widać z tego przykładu, stosunek ilości wygenerowanego kodu Java Script do jego funkcjonalności jest delikatnie mówiąc dużo za duży!

Mam wrażenie, że cały ten EGL to przerost formy nad treścią. Bez komentarza pozostawiam pomysł stworzenia technologii, która ma w domyśle zastąpić RPG poprzez generowanie kodu COBOL, a do tego sprowadza się użycie EGL na iSeries.

JavaBlackBelt

Od 27 lipca zacząłem bawić się w zdobywanie kolejnych pasów na JavaBlackBelt. W skrócie chodzi o zdawanie egzaminów dotyczących technologii około javowych, za które uzyskujemy punkty przeliczane następnie na pasy al’a karate. Strasznie wkręca :)

Naj(gorsze)lepsze jest to, iż by podejść do wybranego egzaminu trzeba mieć na jego zdanie odpowiednią ilość punków (odpowiednik pieniędzy), którą zdobywa się poprzez aktywność w tej społeczności – dodawanie, poprawianie, komentowanie egzaminów i pytań. Im więcej dajesz siebie społeczności, tym bardziej możesz z jej dobrodziejstwa korzystać – majstersztyk jeśli chodzi o serwisy społecznościowe. Od paru dni zatem, w różnych okolicznościach, rodzą mi się więc w głowie kolejne pytania, które mógłbym dodać do serwisu.

Jeśli chodzi o merytoryczną zawartość egzaminów to pytania przechodzą przez dość krytyczne sito użytkowników – nie ma więc głupich pytań w stylu WTF. W trakcie zdawania egzaminu – a pytania nierzadko są obiektywnie trudne – można korzystać z Google, IDE, książek itp, jedynym ograniczeniem jest czas. Egzaminy sprawdzają więc praktyczną umiejętność programowania, czyli to o co powinno w egzaminach na certyfikaty chodzić.

Podsumowując moją podnietę w temacie JavaBlackBelt, jest to idealne połączenie przyjemnego z pożytecznym. Poniżej mój aktualny pasiasty dorobek:

Grails na IBM i – przykładowa aplikacja

Poniżej link do obiecanego tutoriala prezentującego możliwości wykorzystania frameworku Grails na IBM i (AS/400).

Aplikacja i koślawy opis jej stworzenia pochodzi, po mocnym okrojeniu, z mojej pracy mgr. Mam nadzieję że komuś się przyda:) Stworzyłem prostą stronę do wysyłania wiadomości dla użytkowników i5/OS (dzięki pluginowi jtopen) i moduł CRUD pracujący na tabeli z DB2 for i5/OS.

grails-ibm-i-crud-application.txt

Grails i IBM i

Ostatnio miałem okazję pobawić się Grailsami – re-we-la-cy-jny framework. Najlepszy, najbardziej przemyślany szkielet tworzenia aplikacji jaki widziałem. Zadziwił mnie zwłaszcza ogrom pluginów, co oznacza że społeczność ma się nieźle i technologia pomału wypływa na szerokie wody.

Ale do rzeczy, wśród pluginów znaleźć można narzędzia ułatwiające życie programistom AS/400:

W następnym wpisie, zamieszczę tutorial jak utworzyć CRUDa działającego na DB2 for i5/OS i jak korzystać z grailsowego jtopen.

COMMON Europe Congress 2009 – wrażenia

Miałem ostatnio okazję uczestniczyć w tej konferencj i jeśli chodzi o moje wrażenia to:

  • zawartość merytoryczna – podobnie do Commonów w edycji polskiej, bardzo konkretni prelegenci – 0%… no może max 10% marketingu, reszta suche i konkretne fakty. Po raz kolejny jestem pod wrażeniem wykładów Jarka Miszczyka, również większość wykładów Alison Butterill była świetna, pozostałe na których byłem – w porządku, do niczego nie można się było przyczepić
  • organizacja – ok, choć Commony polskie wg mnie są zorganizowane lepiej.

Gościem specjalnym tej konferencji był guru ASów, Frank Soltis, który oprócz wykadów na sesji plenarnej, miał spotkanie w kameralnym gronie z ludźmi z Inicjatywy Akademickiej. Jakoże Soltis w IBM już nie pracuje, toteż poopowiadał kilka szczegółów (“pikantnych” choć na pewno żadne chilli to to nie było) dotyczących historii projektowania AS/400 i przyszłości procków Power. Najciekawsze co wyniosłem z tego spotkania, oprócz fotki ;) było stwierdzenie Soltisa, iż gdyby miał projektować AS/400 jeszcze raz – oparłby go na Unixach, co wg mnie daje do myślenia w świetle połączenia System i+p w Power Systems, itede itepe… chciaż nic nie mówię na temat przyszłości IBM i – nie znam się :)

Swoją drogą od zawsze zastanawiało mnie jaki odsetek kupujących ASy to nowi klienci, kupujący ASy ze świadomego wyboru nie podyktowanego potrzebą podmiany dotychczasowej maszynki tego typu na nową.

with Frank Soltis

KMPlayer – napisy pod obrazem

Menu kontekstowe (prawy klawisz myszy) i…

Wideo (Zaawansowane) > Generator wideo > Mixer nakładki obrazu (Domyślnie)

Napisy > Rysuj na Powierzchni Ekranu

Napisy > Napisy Orientacja > Nad/Pod Obrazem Wideo

lub

Wideo (Zaawansowane) > Generator wideo > VMR9 Renderless (HQ napisów)

Napisy > Rysuj na Powierzchni VMR

Napisy > Napisy Orientacja > Nad/Pod Obrazem Wideo

info za: http://forum.ks-ekspert.pl/index.php?showtopic=115856

Gmail Notifier nie działa – rozwiązanie problemu

Jeśli w ustawieniach gmaila zaznaczyliśmy, i słusznie, opcję “Używaj zawsze bezpiecznego protokołu HTTPS”, do poprawnego działania Gmail Notifiera potrzebna będzie instalacja patcha, pogrzebanie w rejestrze lub binarce tego programu.