Archive

Archive for the ‘java’ Category

Inżynierka v0.1

March 2nd, 2010 4 comments

Oto pierwszy screenshot z mojej pracy inżynierskiej ;)

Aplikacja posiada już następujące funkcjonalności:

  • Potrafi sprawdzić stan WiFi oraz w razie potrzeby sama go włączyć (nie pytając użytkownika o zdanie … bo po co ? jeżeli się uruchamia taką aplikację wiadomo, że sieć bezprzewodowa musi być włączona ;) )
  • Potrafi sprawdzić status usługi GPS oraz poprosić użytkownika o jej włączenie (ponieważ android może za zgodą użytkownika wysyłać dane lokalizacyjne go Google’a warto żeby użytkownik sam włączył usługę, ewentualnie wyłączył moją aplikację)
  • Wyświetla aktualną pozycję użytkownika (to jest właśnie ta gwiazdka na środku ekranu)
  • Automatycznie co pół sekundy skanuje eter w poszukiwaniu sieci bezprzewodowych.
  • W prawym górnym rogu umieszczona jest licznik aktualnie wykrytych sieci
  • W prawym dolnym rogu umieszczony jest licznik sieci które aplikacja “mniej więcej” zlokalizowała (ew. potrafiła zlokalizować)

Przewidywane funkcjonalności:

  • Automatyczne wycentrowanie mapy na pozycję użytkownika (gwiazdkę)
  • Dodanie możliwości konfiguracji (chociażby możliwość zmiany interwału skanowania)
  • Obsługa przycisku “menu”
  • Zapisywanie wyników aplikacji w “jakimś” formacie
  • Kalibracja aplikacji
  • Algorytm lokalizacji punktów na podstawie sygnału WiFi oraz lokalizacji użytkownika

Teoretycznie powinno już być z górki, gdyż już w miarę zaprzyjaźniłem się z SDK oraz API android’a. Największym wyzwaniem będzie główna część czyli implementacja (raz opracowanie) algorytmu pozwalającego na zlokalizowanie access point’a; jego zarysy już kłębią się mi w głowie z tym, że posiada on jeszcze kilka słabostek.

Inżynierka – praca wre ;)

February 18th, 2010 No comments

Zmiana platformy implementacyjnej znacząco przyśpieszyła prace nad aplikacją ;)

Dziś w ciągu nie całych 2 godzin udało się mi wystartować cały projekt oraz uruchomić usługę Google Maps, GPS oraz zintegrować całość ze sobą. Jedyną rzeczą jaką (na razie) moja aplikacja wykonuje, jest umieszczenie markera (w postaci maskotki androida – robota) na odpowiedniej szerokości i długości geograficznej oraz przesunięcie w to miejsce mapy. Czyli aktualnie geo-lokuje telefon ;>

Całość wymaga jeszcze dopracowania, gdyż jest to tylko szybki szkic … ale posiada bardzo ważna cecha, DZIAŁA ;) . Przede mną jeszcze sporo pracy:

  • Ustalenie odpowiednich interface’ów
  • Zaprojektowanie architektury aplikacji
  • Obsługa wyjątków (reakcja na włączenie/wyłączenie GPS’u, WiFi itp.)
  • Obsługa WiFi
  • Reprezentacja zebranych danych na mapie
  • Zapis całości w formie pliku wynikowego czy tez map w Google Maps

Na chwilę obecną tylko tyle przychodzi mi do głowy, pewnie jeszcze sporo rzeczy wyjdzie w “praniu”.

Do mojego zbioru przydatnych linków doszły dwa nowe elementy, głównie dzięki nim udało się mi tak szybko przebrnąć przez tą część ;)

Android … here I come ! – inżynierka

February 16th, 2010 1 comment

Siedem semestrów nauki już za mną, czas więc na napisanie pracy inżynierskiej … a czasu zostało nie wiele, bo do końca kwietnia. Tak więc czeka mnie teraz wzmożony okres ;>. Moje ambitne plany zakładają do końca lutego stworzyć aplikację na tyle, żeby można było rozpocząć badania (oczywiście w między czasie aplikacja będzie musiała być ulepszana). Cały marzec mam zamiar poświęcić na przeprowadzenie “badań naukowych”  oraz “napisanie” pracy.

Jeżeli wszystko pójdzie zgodnie z ambitnym planem to w połowie kwietnia powinienem złożyć gotową pracę … zobaczymy jak to wyjdzie.

W pierwotnej wersji moja praca inżynierska miała wiązać się z OpenMoko … niestety semestr walki z JNA nie przyniósł pożądanych efektów dlatego postanowiłem zmienić platformę na “bardziej dojrzałą” (zwłaszcza, że w między czasie nabyłem G1).

Taki obrót sytuacji spowodował, że na chwilę obecną nie posiadam nawet zarysu aplikacji ;>. Ale czym tu się przejmować, nie ma co biadolić czas zabierać się za robotę :D

IMHO bardzo dobrym quick-start’em jest ta dwugodzinna prezentacja. Zawiera ona dość przekrojową wiedzę potrzebną do tego żeby szybko wystartować z projektem; brakuje w niej opisu manifestu aplikacji, poziomów dostępu do danych i sprzętu … to będzie trzeba uzupełnić na własną rękę.

Oprócz tego standardową kopalnią wiedzy na temat androida jest strona developer.android.com, gdzie dostępne są prezentacje z Google I/O oraz inne sponsorowane przez Google jak również dostępna jest pełna dokumentacja.

W tym poście postaram się agregować wszystkie przydatne linki które okażą się pomocne podczas tworzenia aplikacji. Więc jeżeli interesujesz się tym tematem to zapraszam do zaglądania tutaj … podobnie jeżeli Ty posiadasz jakieś interesujące materiały nie krępuj się umieścić link do nich w komentarzu ;)

  • Tutorial pokazujący wykorzystanie widgetu MapView dostępnego w Google APIs (czyli dodatku do standardowego API androida)
  • Szybki TUT jak rozpocząć “zabawy” z GPS’em

SCJP6 c.d.

November 16th, 2009 2 comments

Ponad rok temu wspominałem tutaj o blogu Mariusz Lipińskiego w kontekście SCJP. Od wspominanego wpisu minął ponad rok. W tym czasie Mariusz zdążył uzyskać certyfikat, a nawet opublikować dwa wydania własnej książki (pierwsze jest całkowicie darmowe, a drugie można kupić tutaj), dodatkowo na łamach bloga krótko opisuje każdy rozdział z Sun Certified Programmer for Java 5 Stury Guide.

Ja w tym samy czasie próbowałem moich sił z  Sun Certified Programmer for Java 6 Stury Guide (SCJP6SG), cóż ukazał się dokładnie jeden post o tym temacie (w sumie to nie ma się czym chwalić :| ), a natłok obowiązków związanych ze studiami i pracą nie pozwolił mi kontynuować tą serię wpisów.

Wspomniałem już wcześniej o książce Mariusza w formie drukowanej, dziś właśnie dotarł do mnie jeden jej egzemplarz. Objętościowo jest on nie do porównania z SCJP6SG. Jeszcze nie zagłębiałem się dokładnie w Przygotowanie do certyfikacji SCJP6 ale zakładam, że jest to odpowiedni wstęp jak i repetytorium przed i po zapoznaniem się z SCPJ6SG.

W tym roku nie ma już raczej szans żebym przystąpił do egzaminu … ale za to postaram się to zrobić w przyszłym ;)

Awesome WM i InteliJ IDEA

October 18th, 2009 1 comment

Kilka dni temu JetBrains udostępniło okrojona wersje (ładnie nazwaną Community Edition) swojego IDE dla Javy. Jako że nigdy nie miałem do czynienia z InteliJ postanowiłem zassać ową darmową wersję i sprawdzić jak się spisuje.

Niestety, używam dość egzotycznego window managera który zwie się Awesome. Posiada on funkcjonalność auto organizacji okien na pulpicie co jak się okazuje nie podoba się Javie 1.5 wzwyż. Winę za to ponosi zmieniony w JRE 1.5 backend do komunikacji z X-Window, JRE do wersji 1.4 korzystało z Motif, natomiast w późniejszych z Xtoolkit/XAWT które to nie jest kompatybilne z ICCCM (cokolwiek to znaczy ;) ). Warto tutaj wspomnieć ze pośrednio może tutaj tez być winne JetBrains gdyż ciągle korzystają z AWT, a nie Swing‘a …

Rozwiązania ?
Są dwa. Pierwsze bardziej drastyczne uruchamiać InteliJ z wykorzystaniem JRE 1.4 – tego nie próbowałem ale teoretycznie powinno zadziałać. Drugie rozwiązanie posiada pewien haczyk, gdyż (jak się domyślam) 64-bitowa wersja Javy nie posiada wsparcia dla Motif; osoby posiadające 64-bitowe maszyny i systemy operacyjne z 64bitowa maszyna wirtualna ustawiona jako domyślną muszą dodatkowo zassać i gdzieś umieścić wersje 32-bitowa JDK/JRE. Oprócz 32-bitowej maszyny wirtualnej musimy dodać zmienna środowiskową AWT_TOOLKIT ustawiona na MToolkit. Ja zmodyfikowałem sobie plik bin/idea.sh dodając w linii 59 taki oto fragment:

# fixes for Awesome WM
export AWT_TOOLKIT="MToolkit"
IDEA_JDK="/ścieżka/do/jdk-x86"

GWT 1.6 – w końcu

April 8th, 2009 No comments

Dziś światło dzienne ujrzała stabilna wersja GWT 1.6, o zmianach i nowościach pisałem już wcześniej, dodatkowo nowością (przynajmniej dla mnie) jest plug-in do eclipse’a dodający parę wizardów i nowych funkcjonalności. Teraz najważniejsze, gwt moża pobrać tutaj, a plugin do eclipse’a stąd ;>

GWT 1.6m2 … duże zmiany

March 10th, 2009 4 comments

Sesja sesją, ale w między czasie umknęły mi dwa w miarę ważne wydarzenia … myślę tutaj o 2 milestone’ach GWT 1.6.

Nie ma co tu ukrywać trochę czasu minęło, nie jest to już nowinka … ale wprowadzone zmiany w najnowszej wersji Google Web Toolkit są dość spore.

Przede wszystkim trzeba tutaj wymienić zmianę podejścia do reakcji na zdarzenia. W najnowszym GWT  zrezygnowano ze wzorca obserwatora (observer pattern) na rzecz podejścia zdarzeniowego. Dodatkowo można programowo (z kodu Java’y) wywoływać zdarzenia systemowe (takie jak np. kliknięcie na przycisk) na widget’ach, w poprzednich wersjach nie było to możliwe.

GWTSchell i GWTCompiler zostają zastąpione przez HostedMode i Compiler. Dodatkowo w HostedMode zostało zastosowane Jetty (zamiast Tomcat’a) oraz dodano, jakże przydatną funkcję (jeżeli zmienia się implementację serwisów RPC lub przesyłanych encji), restartu servlet contener’a bez konieczności restartu całej aplikacji.

Kolejną ważną zmianą jest zmiana struktury katalogów w war’rze, rezygnacja z ogólnego katalogu public.

Wprowadzono dwa nowe widget’y:

  • DatePicker – jak sama nazwa mówi służy do wyboru daty
  • LazyPanel – załaduje zawartość panelu po pierwszej interakcji ze strony użytkownika

Standardowo,  poprawiono wydajność generowanych java script’ów oraz błędy.

To na tyle szybkiego przeglądu, więcej informacji można znaleść tutaj, a samo GWT zassać można z tąd … trzeba będzie znaleść chwilę czasu żeby się przyjrzeć bliżej nowej wersji GWT ;)

XMPP-PubSub w Java (cz. 2)

November 10th, 2008 2 comments

W poprzednim wpisie, pokazałem jak wystawić pojedynczy węzeł (node), dziś zrobię/zrobimy trochę więcej, a mianowicie opublikujemy “wiadomość”, a przede wszystkim odbierzemy zdarzenie o utworzeniu wiadomości. Przecież o tą zaletę XMPP-PubSub nam (a przynajmniej mi ;) ) najbardziej chodzi … o jego zdarzeniowy charakter ;> … a więc do roboby ;)

Read more…

XMPP-PubSub w Java i nie tylko (cz. 1)

November 1st, 2008 No comments

W ramach eksternistycznego zaliczenia przedmiotu Systemy internetowe, muszę wykonać aplikację w architekturze SOA z wykorzystaniem

XMPP-PubSub (XEP-0060). Jako, że temat jest ciekawy i (IMHO) przyszłościowy postaram się go przybliżyć w paru notkach.

Czego można się po tych notkach spodziewać ? Przede wszystkim działających (w chwili publikacji ;) ) fragmentów kodu, opisów problemów jakie napotkałem podczas realizacji projektu … oraz ich rozwiązań. Wszystko oczywiście, jak to u mnie bywa, w mniej lub bardziej chaotycznej formie ;>

Read more…

Google stawia na Java’e ?

October 20th, 2008 No comments

Najpierw (chyba) było Google Web Toolkit, czyli kompilator Java’y do javascript, potem projekt Android, czyli system operacyjny w Java’ie dla telefonów komórkowych (bazujący na Linux’ie), a teraz App Engine (czyli google’owy system hostingu) ma również wspierać język Sun’a … ciekawe gdzie jeszcze Google wepchnie jvm ;)