BuddyRunner vs CardioTrainer

September 12th, 2009 9 comments

BuddyRunner i CardioTrainer to dwie aplikacje które ostatnio mnie zainteresowały. Gadałem przez telefon z kumplem – też programistą . Okazało się że też ma Androida. Powiedział mi że uprawi sport. Pomyślałem że w poprzednim zdaniu brakuje słowa “też”. Powiedział mi że biega z BuddyRunnerem. Ja nie biegam. Ale pomyślałem że mogę jeździć na rolkach i będę miał lepsze czasy, co zmierzy BuddyRunner. Więc zainstalowałem na moim telefonie tą aplikację.

Niestety, pierwsza przejażdżka na czas się nie udała. Czasy się nie zapisały. A naprawdę się starałem. Pomimo krótkiego dystansu – to się nieźle zmęczyłem. Trochę mnie to wkurzyło i w tym momencie złości zauważyłem w Android Market CardioTrainera. Następnego dnia zebrałem siły by wypróbować ten produkt na serce.

Tym razem wszystko się udało. CardioTrainer zadziałał poprawnie i zapisał ścieżkę mojej przejażdżki.

Dziś znowu spróbowałem BuddyRunnera i niestety znowu się nie udało. Dlatego napiszę krótkie podsumowanie tych dwóch aplikacji:

Plusem BuddyRunnera jest przede wszystkim znakomita strona WWW o publicznym adresie URL, prostszy system rejestracji, powiadamianie na e-mail oraz integracja z Facebook. W telefonie wygląda dobrze, lecz brakuje w nim wyboru jednostek miar – są mile.

CardioTrainer wygrywa przede wszystkim w telefonie komórkowym. Lepiej odbiera sygnał GPS i pozwala go konfigurować. CardioTrainer pozwala wybrać rodzaj treningu: bieganie, rower, rolki i inne. Pozwala wybrać jednostki miary – kilometry lub mile. CardioTrainer lepiej dba o prywatność. Niestety, strona CardioTrainera jest słabsza – brakuje w niej statystyk i nie znalazłem opcji udostępniania.

Na chwilę obecną będę jeździł z CardioTrainer. Istnieje szansa, że telefon z Androidem poprawi moją kondycję.

Categories: Android, Recenzje Tags:

Bezpieczeństwa kopiowania danych podczas prac programistycznych

September 6th, 2009 4 comments

Programując nową wersję aplikacji, często zaczynamy od zrobienia kopii aktualnej wersji systemu produkcyjnego. To kusząca idea, jednak należy pamiętać o pewnych zasadach bezpieczeństwa z tym związanych. Idee jest kusząca – ponieważ budując nowe funkcjonalności testujemy je w warunkach zbliżonych do produkcyjnych. Dzięki temu łatwiej jest wyłapać błędy związane z wydajności i łatwiej jest przeprowadzać testy.

Robiąc kopię bazy danych, należy pamiętać o pewnych zasadach bezpieczeństwa. Gdy kopia danych systemu ma być używana do celów deweloperskich – to należy zniszczyć wszystkie wrażliwe dane w bazie: imiona i nazwiska, hasła, adresy, numery telefonów. Taka kopia danych może być bowiem użyta na laptopach programistów, lub na słabiej zabezpieczonych systemach. Warto więc wypracować pewne procedury w tym zakresie.

Kilka lat temu zaproponowałem następującą procedurę: po wykonaniu kopii wszystkie imiona, hasła, adresy, nazwy i temu podobne dane zostaną zniszczone. Są trzy typy niszczenia.

Niszczenie tekstów i nazw własnych. Dla każdego znaku w ciągu znaków powinien zostać wylosowany inny znak. Czyli na przykład, gdy w bazie danych był ciąg znaków “Antoni Jakubiak” to mógł zostać zastąpiony “Xhkkia Uksbtlka”. Dzięki temu podczas testowania systemu widzimy ciągi znaków na ekranie, i zajmują one mniej więcej tyle samo miejsca co prawdziwe dane. Jest to rozwiązanie nieco lepsze, od kasowania danych lub losowania nowych danych w całości gdyż testuje się wygodniej.

Niszczenie adresów e-mail jest szczególnie ważne. Po pierwsze, adresy e-mail naszych użytkowników nie powinny się gdzieś zgubić. Po drugie, gdy nasz system wysyła e-mail automatycznie, to głupio by były żeby wyszły one z testowego systemy do prawdziwego użytkownika: “Kupiłeś sokowirówkę – obciążyliśmy twoją kartę kredytową”. Uważam, że najlepiej jest zastąpić wszystkie adresy e-mail występujące w bazie danych – własnym adresem e-mail. Podoba sprawa dotyczy numerów telefonów, szczególnie gdy nasz system dzwoni lub automatycznie wysyła SMSy. Gorzej, jeżeli adres e-mail jest polem unikalnym – na przykład loginem. Wtedy trzeba się napracować w stylu: update auth set email=concat(‘mój.adres.email+dev’||next_val(‘jakaś.tam.sekwencja’)||’@gmail.com’. Z całą pewnością jednak warto!

Niszczenie haseł. Hasła w bazie danych zwykle są jakoś zaszyfrowane, jednak ich kradzież, szczególnie połączona z kradzieżą loginu lub e-mail, będzie kompromitująca. Uważam, że hasła najlepiej jest po prostu skasować. W testowej kopii systemu można też ustawić wszystkim użytkownikom jednakowe hasła – jednak lepiej je po prosu skasować zupełnie. Testerzy systemu założą sobie po prostu nowe hasło w procedurze jego odzyskiwania. Oczywiście, jeżeli wcześniej zmieniliśmy adresy e-mail.

Napisanie takiej procedury dobremu programiście znającemu system zajmie na pewno mniej, niż dzień roboczy. Warto, żeby była to procedura półautomatyczna, lub żeby w jakiejś dokumentacji programistycznej systemu została ona zapisana. Warto pilnować, by taka procedura była przestrzegana. Ogólnie, warto pamiętać o tym by pilnować backupów systemu.

Categories: Bazy danych Tags:

Tak zaczynał ChessIG

September 1st, 2009 1 comment

Przeglądając stary komputer znalazłem pierwsze zdjęcia projektu ChessIG. To szachy internetowe, gadżet dla IGoogle. Napisałem je, bo uczyłem się Javy i chciałem poznać smak programowania w tym języku. Dziś z sentymentem oglądam zdjęcia.

Jest Eclipse. Jest mój starusienki ukochany laptop Sony VAIO. Jest KDE. I to wszystko przy 512MB pamięci RAM której nie można rozbudować. A w rogu jest świeżo przeczytana książka Head First Java.

Uważam, że najfajniejszy program w swoim życiu napisałem siedząc przy niewygodnym, zbyt niskim stole i pracując na już wtedy przestarzałym laptopie. Szachy działają do dziś, liczba użytkowników rośnie i moje zadowolenie z tej aplikacji także. Zapraszam!

Categories: Recenzje Tags:

Druga noc z Hero

August 29th, 2009 6 comments

Postanowiłem przetestować, jak mój nowy telefon poradzi sobie w sytuacji kryzysowej.

Kryzys wyobrażam sobie tak. Jestem sobie na wakacjach w górach. Właśnie jadę wyciągiem, by za chwilę zjechać z górki na pazurki. Dzwoni klient. Wykonuję cyrkowe akrobacje by odebrać rozmowę i nie zgubić rękawiczek. Dowiaduję się, że aplikacja nie działa a zaraz jest prezentacja. I że to wyjątkowa sytuacja i czy nie mógł bym sprawdzić o co chodzi bo pewnie zepsuła się jakaś drobnostka… Oczywiście to nie jest wyjątkowa sytuacja, bo aplikacje zwykle psują się wtedy gdy programiści mają wakacje i wtedy gdy będę prezentowane – tak jakby wstydziły się sławy.

Czy z moim HTC Hero poradził bym sobie w tej sytuacji? Oczywiście musiałbym dojechać do jakiegoś baru, schroniska. Następnie zobaczyć co jest nie tak z aplikacją WWW. Zalogować się po SSH na serwer. Sprawdzić co jest nie tak. Może ubić kilka procesów, może zrestartować aplikację – nie wiadomo. No i oczywiście nie chciał bym tracić na to całego dnia. Normalnie, siedząc przy komputerze w domu wykonanie tych czynności zajęło by chwilę. Będąc w górach nie mam laptopa ale mogę liczyć na ślamazarne łącze internetowe mojego telefonu.

Postanowiłem zrobić symulacje naprawy. Wyobraźmy sobie, że nieszczęście spowodowane było brakiem miejsca na dysku: “df –h” wyjaśnia sprawę, bo jakiś dziennik gdzieś spuchł i bo ktoś zapomniał przełączyć logowania z trybu odrobaczania na tryb produkcyjny. Przyczyna awarii brzmi sensownie, co?

Wcześniej zainstalowałem klienta SSH ConnectBot. Wczoraj miałem problemy z klawiaturą, jednak dziś udało mi się je pokonać. ConnectBot lepiej pracuje w pionowej pozycji telefonu a gdy klawiatura ginie, to można ją włączyć przyciskiem MENU. Problem w tym, że na HTC Hero to nie działa. Jednak klawiatura włączy się gdy cofniemy i przywrócimy konsole. Klawiatura pionowa jest mniej wygodna niż pozioma ale można się przyzwyczaić i o ile herbata rozmrozi palce to wszystko będzie dobrze.

Tak więc, wczoraj wygenerował w ConnectBot parę kluczy SSH. Zalogowałem się na serwer. Troszkę się męcząc wyedytowałem plik vim .ssh/authorized_keys. Tu niezastąpiona jest znajomość edytora vim. Bez niego było by dużo trudniej. Do pliku wkleiłem wygenerowany klucz publiczny po to by następnym razem logować się z telefonu bez podawania trudnego hasła. Do pracy w Vimie potrzebny jest nam przycisk ESC, który nie jest dostępny na klawiaturze ekranowej. Dlatego zapoznałem się ze skrótami klawiatury i gestami dostępnymi w ConnectBot. ESC osiągamy wciskając dwa razu kulkę. CTRL to wciśnięcie kulki. TAB to kulka później “i”. Wyjście z VIMa to: ESC :wq. J

Przerwałem połączenie, zalogowałem się ponownie. Tym razem obeszło się już bez trudnego podawania trudnego hasła do serwera, czyli szybciej. Postanowiłem zobaczyć jak działa polecenie top. Wynik jest akceptowalny. Polecenie top możemy zakończyć wciskając przycisk “q”. (W przypadku problemów z dyskiem polecenie top wskaże wysoki load i niskie zużycia procesora – procesy czekają na dostęp do dysku). Ekran możemy powiększać i zmniejszać korzystając z przycisków głośności.

Spróbowałem przelogować się na roota. Wprowadzenie hasła może być palcołomne, jednak wytrwałem się to uda. Pewnie trzeba wywalić z dysku jakieś logi lub przestarzałe backupy. Tylko to można zrobić na szybko. Tylko ostrożnie!

Naprawa mojej wyimaginowanej awarii polegała by na poprawieniu pliku konfiguracyjnego. Znów wracam więc do VIMa. VIMa naprawdę warto znać. Gdy ponad 30 lat temu powstawał Vi, pewnie nikt nie pomyślał, że będę wychwalał ten edytor w kontekście telefonów z ekranem dotykowym. VIM rządzi!

Tak więc, dzięki mojemu nowemu bohaterowi, udało mi się zażegnać wyimaginowany kryzys. W prawdziwym kryzysie, nie było by tak łatwo, ale jakaś szansa istnieje. Dzięki telefonowi mogłem sprawdzić działanie strony WWW. Mogłem zalogować się na serwer. Mogłem przelogować się na super użytkownika. Mogłem wykonywać polecenia powłoki. Mogłem też edytować pliki. Dokładnie o to mi zawsze chodziło. Od czasów mojej Nokii 3210 zawsze chciałem mieć takie możliwości. Teoretycznie Nokia E70 której używałem wcześniej też by sobie z tym zadaniem poradziła, jednak Symbian i te diabelne certyfikaty zniechęcały mnie.

Przy okazji, odkryłem wczoraj jeszcze jedną fajną cechę programu ConnectBot. ConnectBot oferuje również terminal lokalny, który wybornie zastępuje programy Terminal oraz Better Terminal z którymi miałem problem wcześniej.

 

 

Categories: Android, Programowanie, Recenzje Tags:

Pierwsza noc z Hero

August 28th, 2009 3 comments

W końcu zdecydowałem się, zakupiłem komputer kieszonkowy HTC Hero. Nie będę się tu wysilał i wstawiał zdjęć czy filmików opisujących ten telefon – takich materiałów w necie są tysiące. Opowiem o moich wrażeniach. Wrażeniach, które po pierwszej nocy są pozytywne, jednak z odrobiną goryczy.

Wybór telefony był dla mnie niezmiernie skomplikowany. To nie jest już tylko telefon. Dla mnie, to przyszłość zawodowa. Coraz więcej aplikacji będzie pisanych na komórki, a to co mnie interesuje – czyli media strumieniowe, to już zupełnie bez komórek nie mogło by istnieć. Tak więc, wyobrażam sobie, że znajdę kiedyś chwilę wolnego czasu i zagłębie się w API. Jednak jeszcze nie teraz. Teraz muszę nauczyć się obsługi tego kieszonkowego monstrum.

Spodobała mi się bardzo klawiatura ekranowa. Nigdy wcześniej nie używałem klawiatury dotykowej i miałem obawy odnośnie tego. Obawy były jednak najzupełniej niezasadne. Klawiatura działa bardzo precyzyjnie i umożliwia na szybkie pianie, nawet przy użyciu obu kciuków. Klawiatura ekranowa nie jest jednak aż tak szybka jak tradycyjna, na przykład w telefonie Nokia E70.

Od współczesnego telefonu oczekuję tego, że będzie spełniał rolę PIM. Ale ja nie chcę kolejnego programu do zarządzania moją książką adresową. Chcę pełną integrację z książką adresową i kalendarzem który mam już w Google. Wbrew pozorom, integracja książek adresowych nie jest taka prosta jak by się to mogło wydawać. Jest tym bardziej skomplikowana, że musi działać w dwóch kierunkach: czyli wprowadzam zmianę w GMailu i zmiana jest dostępna w telefonie, wprowadzam zmianę w telefonie i nowe dane dostępne są w GMailu. Wydaje mi się, że działa to dobrze. Wczoraj na komputerze uporządkowałem swoją książkę adresową GMaila i zmiany zostały automatycznie zsynchronizowane z Bohaterem. To naprawdę duża wygoda, edytować adresy na komputerze i mieć je stale pod ręką w telefonie. Brawo dla programistów!

GMail działa rewelacyjnie, tego się akurat spodziewałem.

Mile zaskoczyło mnie wyświetlanie animacji Flash na stronach internetowych. Niestety, nie jest to Flash Player 10. Wrócę jeszcze do tego tematu.

Gadżety działają prawidłowo: potoczyłem kulkę, pograłem na gitarze, porysowałem. W Android Market są tysiące aplikacji do zainstalowania.

Zainstalowałem więc SSH: ConnectBot. I tu przeżyłem pierwsze rozczarowanie. Klawiatura ekranowa czasami się gubi i nie ma możliwości wprowadzania znaków. Spróbowałem z aplikacją Terminal i Better Terminal, niestety jest problem z znikającą klawiaturą… Mam nadzieję, że są to choroby wieku młodzieńczego. Klawiatura powinna odpalać się po prostu po wciśnięciu jakiegoś przycisku.

Nie udało mi się też zainstalować aplikacji VoIP, tzn, jakąś aplikację zainstalowałem ale SIP nie działał.

Zdziwiło mnie Skype. Podczas instalacji zostałem ostrzeżony, że będę taksowany za odbieranie połączeń przychodzących? I że podczas instalacji muszę podać mój numer komórki… Czyżby połączenia głosowe Skype nie działały w pakietowej transmisji danych były obsługiwane przez zwykłe dzwonienie komórkowe. W świecie wielkich pieniędzy wszystko jest możliwe. Nie wiem, nie przetestowałem tego i w Skype po prostu wyłączyłem funkcje odbierania połączeń przychodzących. Aczkolwiek to trochę bez sensu i pewnie poszukam innego komunikatora na komórkę.

Podsumowując: ekran dotykowy działa precyzyjnie, synchronizacja z kontem Google rządzi, gadżety też są, jednak klawiatura ekranowa się gubi i są problemy z VoIP.

Categories: Android, Recenzje Tags:

Chciałem kupić IPhona 3GS

August 19th, 2009 10 comments

Chciałem kupić IPhona 3GS ale mi się to nie udało.

Wszystko zaczęło się, gdy kilka tygodni temu, podczas ładowania Nokii E50, zepsuła się ładowarka tak elegancko, że wysadziła korki w domu. Gdy spróbowałem użyć jej ponownie to wysadziła korki na ulicy. Pomyślałem, że to pewnie kocięta mi zjadły kabel i na szczęście miałem zapasową ładowarkę.

Niestety, zapasowa ładowarka nie pożyła długo, wysadziła korki w hotelu, w Grecji…

Był słychać bum, dzieci podejrzewały mnie o to, że strzelałem z pistoletu…

Dlatego postanowiłem kupić nowy telefon. Zastanawiałem się nad Nokią E75, Sony Xperia, Samsung Omnia HD lub IPhone. Nie znam się na tym, tak naprawdę to nigdy w życiu nie kupowałem telefonu dla siebie. A telefony teraz są takie fajne. I nawet mają połączenie SSH. Postanowiłem wybrać IPhona. Pomimo złej opinie którą ma on w świecie deweloperów, wydał mi się najbardziej pociągający. Zła opinia bierze się głównie z powodu braku uruchamiania aplikacji w tle. Aplikacje w tle na telefonach są bardzo ważne, nie chodzi tylko o słuchanie muzyki i przeglądanie Internetu. Chodzi na przykład o to, żeby idąc sobie spacerem po górach, powiedzmy po górach Oplimu, IPhone notował trasę wycieczki i dał słuchać muzyki jednocześnie. Bez uruchamiania aplikacji w tle – takie coś wydaje się nie możliwe. Tak samo jak nie możliwe wydaje mi się to, że spróbowałem kupić IPhona w Erze.

Obudziłem się z rana z tą właśnie myślą, że kupię telefon. Zadowolony, że w końcu mam już za sobą mękę wyboru, kupiłem telefon w internetowym sklepie Ery. Zdziwiło mnie to, że nie otrzymałem potwierdzenia zakupu. Następnego dnia napisałem do Ery, a za dwa dni miałem odpowiedź że moje zamówienie nie dotarło. Pomyślałem, że to jakiś omen, i że mam nie kupować IPhona, jednak uparcie, jak dziecko, wlazłem na stronę Ery i ponownie dokonałem zakupu. Zwróciłem uwagę na ankietę na końcu zakupów której wypełniać mi się nie chciało. Zapewne ta ankieta, jest jakimś błędem, gdyż moje zamówienie nie poszło ponownie do realizacji.

Dwie nie udane próby kupienia telefonu – to na pewno jest jakiś znak od niebios żebym nie dał się skusić jabłkiem.

Tym bardziej że jabłczany telefon nie pozwala na uruchamia aplikacji w tle. Jednak martwi mnie coś innego, znów muszę wybierać…

Od telefonu potrzebuję kilku rzeczy: dzwonienia, dobrych zdjęć i filmów, bajeranckiego wyglądu, SSH. Moim marzeniem jest telefon z działającym na 100% Adobe Flash 10. Co mi podpowiecie?

Categories: Recenzje Tags:

Jakie pytania na konkursach?

July 31st, 2009 7 comments

Na konferencjach programistów bywają konkursy. Pytania na tych konkursach bywają przykre. Postanowiłem więc zacząć zbierać listę zagadnień, które mogą być tematami konkursów dla deweloperów, które nie będą przykre i które będą uczyć czegoś studentów obecnych często na konferencjach. Nie będę się wysilał i wymyślał takich zagadnień specjalnie. Jednak gdy coś mi się trafi, to o tym napiszę. Tak jak dziś.

Zadanie: wskaż ryzyko związane z tym kodem.

Categories: Uncategorized Tags:

JDD 2009 po angielsku

July 25th, 2009 1 comment

W tym roku konferencja Java Developer Day maiła być w całości po angielsku. Skrytykowałem ostro ten pomysł.

Jednak, jest kilka zalet zrobienia konferencji po angielsku w Krakowie. Po pierwsze mamy świetną konferencję Javową po polsku i to w Warszawie. Gdyby JDD dalej była po polsku to musiała by konkurować z Javarsovią co dla obu konferencji było by niekorzystne.

Ważniejsze są jednak sprawy ambicjonalne. Dlaczego w Polsce nie mamy mieć konferencji ponad polskiej? Dlaczego Polska nie miała by być liderem okręgu? JDD po angielsku miało by szansę ściągnąć naszych sąsiadów z Niemiec, Czech, Słowacji, Ukrainy, Białorusi, Łotwy, Litwy… Lepiej, żeby tego typu konferencja była w Krakowie niż w Pradze.

Kolejna sprawa, w Polsce mamy świetnych prelegentów, przypomnę tylko ostatni wykład Pawła Szulca InDaHouse – to jest poziom światowy. Dlaczego nie dać kopa ich karierze? Lepiej, dla nas programistów, żeby programista z Wrocławia robił wykład w San Francisco niż na odwrót. Konferencja JDD po angielsku może być właśnie taką szansą na wskoczenie z karierą na wyższy poziom. Nie chodzi tylko o ego i karierę wykładowców, ale przede wszystkim o promocje Polski i polskich informatyków za granicą.

Podsumowując zalety: JDD po angielsku nie było by konkurencją dla Javarsovi, JDD po angielsku ma szansę być konferencją regionu wschodnia Europa, JDD po angielsku może promować biznes IT w Polsce – na czym zarobimy wszyscy.

Dlatego, zmieniam swoje zdanie. Od dziś uważam, że warto przecierpieć Polską konferencję po angielsku.

Categories: Recenzje Tags:

Woome

July 25th, 2009 No comments

Woome to niesamowicie interesująca z punktu widzenia technologii zabawka. Woome to serwis społecznościowy wykonany po mistrzowsku który oferuje flirtowanie wideo. Dwie osoby rozmawiają ze sobą, ich rozmowa nagrywa się i jest opublikowana w necie. Ktoś naprawdę się napracował.

Niestety, zawsze na końcu pojawia się księgowy. Nie wystarczy, żeby Coś było fajne, Coś musi przynosić dochód. Przynajmniej musi dawać jakaś nadzieję na dochód. Dlatego kliknąłem w baner:

Wcześniej, nie widziałem tego typu reklam na woome L. Szkoda, że się pojawiły. Dlatego, z całego serca życzę powodzenia Woome, gdyż ten serwis składa się z wyśmienitej pracy informatyków zza morza.

Categories: Recenzje Tags:

Google vs Adobe

July 20th, 2009 No comments

Mam wrażenie, że firma Google nie lubi firmy Adobe. Google unika technologii Adobe a produkty Google czasami źle współpracują z produktami Adobe.

  • Google napisało pakiet biurowy – Google Docs. Gdyby wykorzystali technologie Adobe mieli by dużo mniej roboty i osiągnęli by dużo lepszy efekt. Szkoda, że Adobe nie skończyło Buzzworda… Przy okazji Buzzword nie działa na Google Chrome.
  • Google napisało Talk. Gdyby użyli technologii Adobe, osiągnęli by lepszy efekt wielokrotnie mniejszym wysiłkiem.
  • Google bardzo rzadko używa Flasha na swoich stronach. Głównie na YouTube i Analytics. Jednak są to firmy kupione przez Googla. (Google Video jest klonem, MSN też korzysta z Flasha)
  • Google nie chcę udostępnić pliku crossdomain.xml lub czegoś co pomogło by programistom Flasha przy pisaniu aplikacji korzystających z Google API. Naprawdę wielu programistów o to prosi.
  • Gadżety dla IGoogla ciężko współpracują z Flashem. Flasha trzeba osadzać specjalnym kodem od Googla. Raczej nie da się tego zrobić dobrze korzystając z popularnych bibliotek, np.: SWFObject.
  • A do napisania tego posta tknęło mnie dzisiejsze odkrycie – kłopoty Chrome z historią dla aplikacji Adobe Flex.

Jak myślicie, co będzie dalej?

Ja myślę, że ktoś zdetronizuje Google Docs czy też skompromituje Talk albo Wava przy wykorzystaniu technologii Adobe. Zadufani ewangeliści Google dostaną wtedy po łapkach.

Categories: Google Tags: