czwartek, 19 marca 2009

Spotkanie Poznań JUG [26.03.2009] - Vine/Flex/BlazeDS

Po dość długiej przerwie w spotkaniach JUGowych na najbliższym będziemy mogli posłuchać o Vine, Flexie i BlazeDS z ust Piotra Dziubickiego. Oto krótki opis prelegenta nt wystąpienia:
"Tworzenie nowoczesnych serwisów internetowych z wykorzystaniem Vine/Flex/BlazeDs. Wybór odpowiedniej technologii często przesądza o późniejszym "być, albo nie być" projektu. Dlatego dyskusja skupiona będzie wokół często pojawiających się pytań:
- na co zwrócić uwagę i jak podejść do ewaluacji dostępnych rozwiązań?
- jak wygląda serwis internetowy wspomagający HPC wykorzystujący i łączący wiele standardów produkcyjnych.
"

Informacje techniczne:
26.03.2009, godzina 18:00
Siedziba Cognifide, Aleja Wielkopolska 4
Rejestracja

Zapraszam!!

niedziela, 15 marca 2009

Przykładowa aplikacja Java ME w NetBeans IDE z wtyczką Mobility

Dostałem już kilka maili od osób które zaczynają swoją przygodę z Java ME a mają problem ze zbudowaniem działającej prostej aplikacji. Dlatego chciałbym dziś zaprezentować mały tutorial jak stworzyć taką prostą aplikację za pomocą NetBeans IDE z wtyczką Mobility. Który wg mnie jest najlepszym środowiskiem do mobilnej Javy z jakim się spotkałem - a wiele już przeszło przez moje macki ^^
Zacznijmy od pobrania środowiska ze strony Download. Wybieramy wersje z pełnym wsparciem Java lub minimalna a po uruchomieniu w oknie Tools -> plugins pobieramy wtyczki:
  • Mobility

  • Visual Mobile Designer

  • Po instalacji potrzebny będzie restart IDE.
    Gdy już jesteśmy przygotowani możemy przystąpić do utworzenia nowego projeku Java ME.
    Wybieramy File -> New Project, na liście kategorii klikamy Java ME a następnie po prawej stronie Mobile Application.

    Na następnym ekranie wybieramy nazwę projektu (u mnie SampleJ2MEApp) oraz odznaczamy opcję Create Hello MIDlet (przecieć mamy go sami stworzyć ;)
    . Następne co musimy skonfigurować to emulator oraz platforma docelowa naszej aplikacji. Emulator powinniśmy mieć do wyboru jeden Sun Java(TM) Wireless Toolkit 2.5.2 for CLDC . Aby większość komórek mogła uruchomić nasz MIDlet wybieramy konfigurację CLDC 1.1 oraz profil MIDP 2.0.
    To wszystko. Klikamy finish.
    Ok, dodajemy nowy Midlet: File -> New File -> MIDP -> Visual MIDletI nadajemy mu nazwę np. SampleApp.
    Po wybraniu finish powinien wyświetlić się nam ekran Flow Design w którym to możemy przedstawić cały przepływ sterowania między ekranami aplikacji a wtyczka Mobility wygeneruje za nas kod Javy do tego (klepanie tego ręcznie jest strasznie denerwujące:/).

    Możemy przystąpić do tworzenia! Zróbmy aplikację która po uruchomieniu wyświetli nam ekran powitalny z jakimś obrazkiem a następnie przejdzie do ekranu z tekstem np "Hello, world!".
    Jedynym obiektem który istnieje na diagramie jest Mobile Device który reprezentuje urządzenie. Ma przypisane dwie akcje - started do którego przypisujemy ekran który ma się wyświetlić po uruchomieniu oraz Resumed do którego przypisujemy ekran który ma się pojawić po wznowieniu działania aplikacji.
    Do diagramu będziemy musieli dodać dwa nowe elementy z panelu bocznego (palety). Mianowicie Splash Screen oraz Form. Pierwszy z nich reprezentuje ekran powitalny i jest specjalna klasą dostępną tylko w NetBeans, więc jeśli będzie konieczność przeniesienia projektu np. do Eclipse potrzebne będzie dodanie bibliotek w classpath. Form jest standardową klasą MIDP i reprezentuje standardowy ekran na którym będziemy wyświetlać jakieś kontrolki.
    Teraz dodamy jeden przycisk akcji do Form który będzie odpowiadać za zamykanie aplikacji. Z kategorii Commands wybieramy Exit Command i 'przenosimy' go na form.
    Następnie dodajmy działania do tych akcji. Aby tego dokonać należy połączyć akcje z ekranem docelowym klikając na akcję źródłową i próbować 'przenieść' ją (pojawi się strzałka) na ekran docelowy. W taki sposób łączymy
    - Started z splashScreen (po uruchomieniu to on się właśnie pojawi)
    - DISMISS_COMMAND z form (po upływie 5s zostanie wyświetlony form)
    - exitCommand1 z Mobile Device (wyłączenie aplikacji).
    Ostatecznie diagram przepływu powinien wyglądać następująco:

    Teraz możemy się zabrać za wygląd ekranów.
    Na ekranie powitalnym możemy wyświetlić naszego wiernego Javowego towarzysza Dukea !

    Klikamy prawym przyciskiem na splashScreen następnie Properties i z listy Image wybieramy <New Image Resource>. Pojawi się nowy element na liście, wybieramy go i klkamy trzy kropki obok. Odnajdujemy obrazek z naszym Dukiem.

    I klikamy OK. W oknie properties możemy zmienić jeszcze wartość title na "Przykładowa aplikacja Java ME !".
    No to został nam jeszcze form. Klikamy na niego i na nad widokiem diagramy przepływu wybieramy Screen. Wyświetli się designer ekranu form. Klikamy prawym przyciskiem na ekranik i wybieramy New/Add -> String Item. Po dodaniu edytujemy pogrubiony tekst na "Hello, world!". Następnie nagłówek 'form' zmieniamy na "Przykładowa aplikacja Java ME !".

    I to wszystko! Możemy teraz uruchomić aplikację i przetestować jej działanie na emulatorze (prawy przycisk myszy na nazwę projektu na liście a następnie run) a później wgrać na telefon i przekonać się, że wszystko ok:)


    Za pomocą kilku kliknięć udało nam się stworzyć prostą aplikację bez pisania nawet linijki kodu. Oczywiście tworząc normalne aplikacje koniecznie będzie pokodowanie trochę ale takie operacje jak sterowanie przepływem ekranów czy prosty design okna może zostać bardzo łatwo zrealizowany za pomocą środowiska:)

    Zapraszam do komentowania!

    wtorek, 3 marca 2009

    Brak obsługi klawiszy multimedialnych w laptopie Lenovo SL500 na Ubuntu

    Dzisiaj troszkę z innej beczki. Jakiś czas temu stałem się posiadaczem laptopa Lenovo SL500. Chcąc w końcu nauczyć się obsługiwać linuxa zainstalowałem sobie Ubuntu 8.10 dla 64 bitowych procesorów. Zaskoczony byłem gdy po instalacji działał praktycznie cały sprzęt! Nie musiałem dogrywać żadnych dodatkowych sterowników:) No z jednym wyjątkiem... po jakimś czasie zauważyłem, że nie działają klawisze głośniej/ciszej i wyciszenia.
    Na polskich stronach nic nie znalazłem, na angielskich dotarłem do sterownika autorstwa Alexandre Rostovtsev. Opiszę jak go zainstalować, może komuś się kiedyś przyda ;)

    Pobieramy sterownik ze strony http://github.com/tetromino/lenovo-sl-laptop/tree/master
    Rozpakowujemy go w jakimś katalogu gdzie będzie mógł sobie bezpiecznie siedzieć i służyć.
    Wchodzimy do tego katalogu przez konsolę i wpisujemy:
    make
    insmod lenovo-sl-laptop.ko

    Ok, już powinno działać:)
    Jeszcze trzeba sprawić, by ten moduł uruchamiał się przy starcie systemu. Musimy napisać prosty skrypt w bashu:
    #!/bin/bash
    insmod sciezka_do_katalogu_z_modulem/lenovo-sl-laptop.ko

    I umieścić go w katalogu /etc/init.d/ pod dowolną nazwą z rozszerzeniem .sh. Następnie dodajemy mu uprawnienia na wykonywanie:
    chmod +x [nazwa skryptu]

    I dodajemy go by uruchamiał się przy starcie:
    update-rc.d nazwa_skryptu defaults


    No i problem rozwiązany.

    ps. Dziękuję za pomoc koledze Spawaczowi!
    UPDATE
    Na Ubuntu 9.04 też to rozwiązanie działa.

    UPDATE 2
    Trafiło do mnie podobne rozwiązanie którego jeszcze nie testowałem ale może ktoś będzie miał czas się pobawić.. chyba jest bardzie profesjonalne ^^ Link: http://gianlucamagalotti.wordpress.com/2009/02/16/lenovo-thinkpad-sl-series-hotkeys/

    poniedziałek, 2 marca 2009

    Tytuł inżyniera oraz DB2 Fundamentals Certificate zdobyte!

    Dłuuuga przerwa spowodowana dwoma sukcesami :)

    1. Tytuł inżyniera informatyki - po jakiś 17 latach nauki nareszcie są efekty! 16 lutego udało mi się uzyskać tytuł inżyniera na politechnice poznańskiej. Za prace pt. System informacji giełdowej na urządzenia mobilne otrzymałem ocenę 5, a na dyplom (obrona + średnia ze studiów) trafi ocena 4,5 :) Co prawda jakoś mój świat się nie zmienił po otrzymaniu tego tytułu ale miło, że coś dzięki temu zmieni się w CV (co prawda tylko 4 litery inż. ale zawsze;).

    2. DB2 Fundamentals Certificate (exam 730) - to świeże info, bo dziś w okolicach 16 moim oczom ukazał się taki oto ekran:

    Miło #2 :) Wynik jest dla mnie satysfakcjonujący, zważywszy na to, że pytania to prostych nie należały - spodziewałem się znacznie prostszych. Przygotowania do tego certyfikatu wiele mnie nauczyły, podczas projektowania bazy danych zwracam uwagę na znacznie więcej aspektów. Poza tym DB2 okazało się bardzo ciekawą relacyjną bazą danych. Nowy typ danych - XML, sposób jego przechowywania oraz operacje na nim są ciekawą innowacją. Postaram się coś o tym (i nie tylko) napisać na blogu;)
    Szkoda, że po otrzymaniu wyników nie mogłem przejrzeć gdzie popełniłem błędy :-/

    Jakie teraz mam plany (kolejność przypadkowa) ?;]
    - DB2 Administrator (exam 731)
    - Dokończyć szkolenie z Glassfish
    - SCJP - ale nad tym się jeszcze zastanawiam czy warto