Archiwum

Archiwum dla ‘programowanie’ Kategoria

Inżynierka v0.1

Marzec 2nd, 2010 Dariusz Łuksza 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 ;)

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

Luty 16th, 2010 Dariusz Łuksza 1 komentarz

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

Ściągi dla developera

Luty 9th, 2010 Dariusz Łuksza 1 komentarz

Dziś dzięki serwisowi develway.pl który dość nie dawno trafił do mojego  czytnika RSS, trafiłem na serwis devcheatsheet.com na którym to znajdują się  ściągawki (tzw. chetsheet’y) do wielu języków, framework’ów oraz narzędzi developerskich (nie które odnośniki są puste np. do GWT ale może za jakiś czas coś się tam pojawi).

Mnie w szczególności zainteresowały te pozycje:

Miłego ściągania ;>

SCJP6 c.d.

Listopad 16th, 2009 Dariusz Łuksza 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

Październik 18th, 2009 Dariusz Łuksza 1 komentarz

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"

Koniec Google Summer of Code 2009

Październik 16th, 2009 Dariusz Łuksza Brak komentarzy

GSoC09 t-shirtMimo, ze oficjalne ogłoszenie wyników GSoC09 odbyło się prawie dwa miesiące temu, dla mnie google’owe lato z kodowaniem zakończyło się dopiero parę dni temu kiedy to kurier dostarczył do mnie paczkę z koszulka i certyfikatem.

Co do samego projektu, to niestety nie udało mi się go skończyć w wyznaczonym terminie. Osobiście stopień zaawansowania oceniam na 75-80%. Mimo to Reinhard (mój mentor) uznał, że wykonałem na tyle dobrą pracę że ukończyłem pozytywnie GSoC.

Koniec Summer of Code nie oznacza dla mnie końca współpracy z developerami Cocoon’a, zwłaszcza, że nie wykonałem w pełni stawianych sobie celów. Dodatkowo na horyzoncie pojawiły się nowe interesujące pomysły na rozwój modułu monitorującego trzecią wersję Cocoon‘a.

Ostatnio pisząc o Summer of Code wspominałem o artykule traktującym o Spring JMX, miał on się ukazać w ciągu 2-3 tygodni … cóż nie udało się ale nie wydaje mi się by jego los był przesądzony ;) . Wszystko jest ciągle kwestią czasu … jest to jedna z rzeczy którą chciałem zrealizować w czasie GSoC i ciągle pozostaje na mojej (dość, długiej(sic!) już) liście TODO.


EDIT:

Zapomniałem o jednej bardzo ważnej rzeczy … 90% napisanego przeze mnie kodu podczas GSoC znajduje się już w repozytorium ASF, a dokładniej mówiąc to jest tutaj. Natomiast całość kodu dostępna jest w archiwum znajdującym się pod koniec tej listy.

cda2mpc 1.2

Październik 14th, 2009 Dariusz Łuksza Brak komentarzy

Today I publish newest version of cda2mc on github.

This version contains 2 new features:

  1. it is possible to add CD information manually if CDDB does not contains information about it
  2. if CDDB contains multiple entry’s for that particular CD you can chose one from list with one you want to use

Skąd ta przerwa ?

Lipiec 1st, 2009 Dariusz Łuksza 2 comments

Cóż ostatnie dwa miesiące były dla mnie dość wyczerpujące … praca, studia i summer of code nie pozostawiały mi zbyt wiele czasu i energii na udzielanie się tutaj. Na szczęście wszystko jak na razie idzie bardzo dobrze … może z wyjątkiem studiów bo czeka mnie jeszcze (średnio przyjemna) batalia wrześniowa …

Na chwilę obecną mogę odłożyć sobie studia na półkę i zająć się przyjemniejszymi rzeczami ;) . Właśnie kończę implementować (a właściwie to dokumentować (sic!) już powstały kod) drugi z zaplanowanych czterech milesone’ów w projekcie Cocoon 3 monitoring, tak więc połowa mojego projektu zbiega się praktycznie idealnie z połową summer of code.

Na chwilę obecną mogę uchylić rąbka tajemnicy odnośnie kolejnego posta … będzie on dotyczył dynamicznej rejestracji MBean’ów oraz dynamicznego wymuszenia ich „hierarchizacji” z wykorzystaniem Spring JMX (brzmi tajemniczo, zwłaszcza druga część ;) ). Mam nadzieje, że uda mi się zebrać w sobie i w przeciągu najbliższego tygodnia (… no może dwóch) opublikować ten wpis ;)

git diff 2 svn diff

Konia z rzędem temu kto potrafi zmusić GIT’a do generowania patch’y kompatybilnych z SVN’em (a zwłaszcza z TortoiseSVN) !

Jeżeli nie uda się mi zmusić GIT’a do tego żeby wygenerował patch’e zgodne z SVN niestety będę musiał zakończyć w Summer of Code ’09 przygodę z GIT’em … na prawdę będzie mi z tego powodu przykro :|