piątek, 29 lutego 2008

Google Calendar

Muszę zakomunikować, że następna reklama Googla czeka Was na tym blogu. Dla osób co nie lubią/nie trawią proszę o pominięcie posta. Chociaż sądzę, że jest ich dość mało ze względu na dość miłą politykę względem użytkowników prowadzi ta firma - nikt nikomu nic nie narzuca.
Dziś na celownik obrałem Google Calendar - produkt nie jest zbyt "świeży" ale dopiero teraz zdecydowałem się na jego użycie. Może zacznę od motywacji - chciałem mieć po prostu wszystko zawsze pod ręką, czego niestety mój poprzedni kalendarz Microsoft Outlook nie umożliwiał (PDA nie posiadam). A takie google to można włączyć gdziekolwiek ma się dostęp do internetu i mieć wszystkie informacje pod ręką.
No to opisze moje wrażenia...
Początek do bardzo ważny export z Outlooka. Standardowo wybrałem export i jedyny format możliwy to był csv eeeeee.... to nie za bardzo pasuje, bo np. nie obsługiwane są w tym formacie wszelkie powtarzające się wydarzenia i trzeba np wybrać zakres powiedzmy 10 letni co i tak nas nie satysfakcjonuje...
Chwile poszperałem i znalazłem możliwość eksportu do iCal (bo to drugi format jaki Google Calendar może zimportować), wystarczy po prostu wejść do kalendaża i wybrać file -> save as. Tam ważne żeby zaznaczyć do eksportu pełne informacje!! No i później już z górki, import przeszedł bezproblemowo i moim oczom ukazał się kalendarz.No ładnie ładnie to wygląda, ale jak to z użytkowaniem ?!
No to powymieniam:
- Widok
No różnic to za wiele nie ma w stosunku do Outlooka! Bardzo płynnie można zmieniać wygląd miedzy dniami, tygodniami, miesiącami, a nawet można sobie zaznaczać na mini kalendarzyku z boku jakie dni chcemy widzieć - jestem pod wrażeniem co można zrobić po stronie przeglądarki.
Na jednym widoku można wyświetlać kilka kalendarzy (o tym jeszcze później trochę), które można sobie włączać i wyłączać w dowolnym momencie. Nie ma ograniczonej liczby co do nich. Klikniecie na jakieś wydarzenie przenosi nas do jego widoku/edycji a jeśli klikniemy na puste pole to pojawia nam się chmurka dodania nowego (taka okrojona dla szybkiego ich dodawania).
- Dodawanie/Edycja wydarzeńTutaj mamy dwa sposoby, albo opisany wyżej "na szybko" lub trochę bardziej rozbudowany. W tym rozbudowanym mamy całkiem sporo opcji, praktycznie wszystkie najprzydatniejsze jakie spotkamy w Outlooku. No może poza kategoriami dla wydarzeń ale to można na dobrą sprawę rozwiązać kilkoma kalendarzami, więc dla mnie to nie był minus. Bardzo ciekawą opcją okazało się przypomnienie. Mamy trzy możliwości: popup, email oraz... sms ! No to jest idealne rozwiązanie! Nawet nie trzeba siedzieć przy komputerze, żeby google mi powiedziało, że muszę czasami coś zjeść :P Dziwny jest troche format tych smsów, bo informacje o "test test" otrzymałem w dwóch. W drugim była tylko lokalizacja. Wszystko spokojnie by się zmieściło w jednym.
Aby aktywować te możliwość trzeba w ustawieniach wysłać sobie na komórkę kod i później wpisać go na stronce. Obsługiwani operatorzy: Plus/Orange/Era. Myślę, że na Heyah też przejdzie ale co z Play to nie wiem.
Z takich użytecznych rzeczy to jeszcze zauważyłem to co w Outlooku bardzo przydatne a mianowicie takie auto przestawianie godziny. Np ustalamy, że spotkanie trwa 1,5h a później zmieniamy czas rozpoczęcia - automatycznie zmieni się czas zakończenia, żeby czas trwania był równy 1,5h.
Ustawienia powtarzania bardzo rozbudowane i możliwy jest chyba każdy przewidywalny wariant.
Podczas zapisu edytowanego wydarzenia aplikacja zawsze nas pyta czy zmiana ma objąć tylko to wystąpienie czy całą serie (oczywiście tylko jeśli takowa istnieje).
- Inne bajery
Nasz web kalendarz posiada także inne ciekawe opcje. Jednym z ciekawszych jest współdzielenie. Można sobie dodać czyiś kalendarz do własnego widoku. Bardzo ciekawa opcja, np. jeśli ktoś jest fanem kabaretu X, a ten prowadzi kalendarz na google może śledzić ich poczynania. Ja dodałem sobie dwa zdefiniowane przez google kalendarze: Polskie świeta oraz pogoda.
Co do drugiego to nie wyświetlany jest on jak każdy inny tylko jako ikonka w danym dniu (wyświetlana kilka dni do przodu). Jego konfiguracja została automatycznie pobrana z mojej strony iGoogle, więc nie musiałem tego robić ponownie.Znalazłem w tym jednak drobnego buga. Gdy klikniemy na "Poznań,Greater Poland" (przynajmniej tak myślałem) powinno nas przenieść na stronę ze szczegółową pogodą dla naszego regionu. Tak się jednak nie stało, a oto wynik:Wyświetlona została wyszukiwarka google w ramce :P Mam nadzieje, ze to poprawią i chociaż będzie się wyświetlać w nowym oknie.
Co do współdzielenia to podczas dodawania wydarzenia dostępny jest wybór publiczna/prywatna. Te publiczne można przeglądać u innych użytkowników. Jeśli szukamy czegoś konkretnego to dodana została także wyszukiwarka.

Udostępniona została opcja wydruku. Jednak co do niej mam kilka zastrzeżeń, a dokładnie do formatu wydruku. Chcąc sobie wydrukować plan na cały tydzień otrzymałem wydruk na dwóch stronach. Co prawda dość inteligentnie pocięty no ale fajnie by było jakby był w całości.

Jak ktoś chce się pochwalić jak wygląda jego rozkład dnia może umieścić sobie na własnej stronie gadzeń z mini kalendarzem - kolejna przydatna rzecz jak ktoś jest kabaretem lub inną orkiestrą.

Jeszcze na koniec wtrącę o dość przydatnym narzędziu. W internecie znalazłem program o nazwie OGG Sync który umożliwia synchronizacje Outlooka (wersji 2007 także) z Google Calendar. Obsługa bardzo prosta, jednak brakuje opcji dostępnej tylko w wersji pro która właśnie kategorie z Outlooka rozdziela na kilka kalendarzy w google. No ale nie ma co narzekać, bo bardzo ułatwia nam działania :)

To by było pokrótce tyle ode mnie na temat Google Calendar. Produkt odebrałem bardzo pozytywnie, ma wszystkie potrzebne mi opcje i do tego interfejs mądrze zaprojektowany dzięki czemu nie wnerwiam się co chwile. Naprawdę dziw bierze, że takie cudo jest dostępne przez przeglądarkę.
Jak kogoś udało mi się zachęcić do przetestowania to bardzo proszę o własne opinie :)
Pozdrawiam ! ;-)

ps. tak przy okazji to mój pierwszy post napisany przy użyciu Google Docs ;-)

piątek, 15 lutego 2008

Kabaret Skeczów Męczących

Z okazji kolejnego szarego dnia wybrałem się wczoraj (14 lutego) na występ Kabaretu Skeczów Męczących do poznańskiej Obory. Nigdy wcześniej nie słyszałem o tym kabarecie (moi znajomi też), więc byłem przygotowany na obraz średniawy, gdyż taki mnie spotykał, gdy wizytowałem Obore na wieczorach kabaretowych. Czas rozpoczęcia punkt 19:00.... + 20min opóźnienia... :P Ale jak się zaczęło.... pełne 2h miałem gębę zrzącą ze śmiechu :D Byłem zniszczony totalnie tym co się wyprawiało na scenie. Pokazali chyba 7-8 skeczy i każdy kolejny mnie powalał na glebę coraz bardziej. Musze stwierdzić, że był to najlepszy występ kabaretu jaki kiedykolwiek widziałem ! Nie wierze aż, że wcześniej o nich nie słyszałem. Koniecznie muszę sobie kupić ich DVD ;P
Polecam jak pojawią się u Was w mieście.

Kilka skeczy (ale muszę przyznać, że na żywo i przy mniejszej publiczności wypadły lepiej):





Oficjalna www: www.ksm.art.pl

sobota, 9 lutego 2008

Dobre rady wujka Shpiglera

Jak dobrze wszyscy wiemy Microsoft chce kupić Yahoo. Na jednym z czytanych przeze mnie blogów znalazłem świetny filmik. Kilka rad dla Yahoo przy negocjacjach z Microsoftem:

wtorek, 5 lutego 2008

Pierwszy MIDlet (aplikacja J2ME)!

Ostatnimi dni zainteresowałem się pisaniem jakiegoś softu na komórki. Wypożyczyłem sobie książkę do Java Micro Edition i dzięki niej mogę tutaj napisać krótki tutorial jak napisać Hello, world! na własny telefon :)

Co nam będzie potrzebne:
- środowisko Eclipse : link
- plugin EclipseME : link
- Sun Java Wireless Toolkit (WTK): link
Pierwszych dwóch chyba nie trzeba omawiać. Z trzeciego potrzebny będzie nam emulator żebyśmy mogli sobie testować nasze aplikacje bez potrzeby wgrywania na koma.

Wszystko instalujemy i przechodzimy do konfigurowanie środowiska Eclipse.
1. Otwieramy okno Window->Preferences.
2. Wybieramy J2ME->Device Management.
3. Klikamy Import.
4. W polu Specify search directory podajemy ścieżke na katalog gdzie znajdują się pliki WTK.
5. Zaznaczmy wszystkie odnalezione pozycje, klikamy finish i wybieramy sobie jedną. Są to dostępne emulatory. Ja używałem Media Control Skin.

6. W oknie preferences przechodzimy do Java->Debug.
7. Odznaczamy Suspend execution on uncought exceptions oraz Suspend execution on compilation errors.
8 Wartosc Debugger timeout zmieniamy na 15000, a pole Launch timeout na 20000.

Zabieramy się za tworzenie nowego projektu.
1. Tworzymy nowy projekt wybierajac z listy J2ME Midlet Suite i klikamy next
2. Nazwa projektu dowolna, u mnie dla przykładu HelloWorld.
3. Klikamu next next aż do końca.
4. Dodajemy nową klasę do projektu.
5. Nadajemy jej nazwę HelloWorld.
6. Piszemy przykładową klasę (opiszę o co chodzi kawałek dalej):
package j2me.tests;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class HelloWorld extends MIDlet implements CommandListener {

public HelloWorld() {
// utworzenie formularza głównego
Form myForm = new Form("Pierwszy MIDlet!");
String text = "Hello, world!";

// dodanie napisu oraz przycisku do wyłączenie aplikacji
myForm.append(text);
myForm.addCommand(new Command("Exit", Command.EXIT, 0));
myForm.setCommandListener(this);

// pobranie managera ekranu
Display display = Display.getDisplay(this);
// wyświetlenie
display.setCurrent(myForm);
}

public void commandAction(Command c, Displayable s) {
if (c.getCommandType() == Command.EXIT)
notifyDestroyed();
}

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {}

protected void pauseApp() {}

protected void startApp() throws MIDletStateChangeException {}
}

7. W package explorer przechodzimy do HelloWorld.jad
8. Na dole wybieramy zakładkę Midlets
9. Dodajemy nowy element HelloWorld i podprowadzamy do niego naszą klasę HelloWorld.
10. Budujemy pakiet klikajac prawym przyciskiem myszy na projekt -> J2ME -> Create package

Ok wszystko gotowe ! Otwieramy okno dialogowe run as i tworzymy nowa konfigurację uruchomieniową typu Wireless Toolkit Emulator i odpalamy!
Naszym oczom powinno ukazać się :

(Jak coś nie działa pisać w komentarzach ;P)

Czas opisać co tam się dzieje w tym kodzie...
Każdy MIDlet musi dziedziczyć po klasie MIDlet zawartej w pakiecie javax.microedition.midlet. Wymaga ona definicji trzech metod: startApp(), pauseApp(), destroyApp(). Jak widać pozostawiliśmy je puste. W innej części kursu omówie je bardziej. Na tę chwilę powiem tylko, że odpowiadają one za zachowanie aplikacji np podczas jej zatrzymywania gdy nadchodzi rozmowa w telefonie.

Klasa Form - żeby coś wyświetlić trzeba mieć najpierw na czym. My wyświetlamy na prostym bardzo obiekcie typu Form. Na niego wrzucamy prosto różnego typu elementy (TextField, StringItem itp.). W naszym przypadku jest to tylko jeden element String, który dodajemy za pomocą metody append.
Dodam tutaj jeszcze, że Form jest jednym z kilku możliwych opcji. Jest np. klasa Canvas która służy do rysowania. Wszystkie klasy które chcą być wyświetlane na ekranie muszą implementować interfejs Displayable.

Teraz dość istotna sprawa. Jak pewnie zauważyliście nasza klasa (to nie kryptoreklama!) implementuje interfejs CommandListener. Jest to dość popularne rozwiązanie do obsługi Commend. W J2ME niestety nie mamy żadnych buttonów itp. więc interakcja odbywa się poprzez klawisze na telefonie. Aby ją obsłużyć należy dodać obiekt typu Command do Forma. Konstruktor obiektu Command wygląda następująco:
publi Command(String tekst, int typ, int priorytet)
tekst - nazwa wyświetlana
typ - typ komendy (Ok, Exit, Cancel, Help itp)
priorytet - służy do układania kolejności. Można też wg niego rozróżniać komendy

Instrukcja myForm.setCommandListener(this) ustawia jako słuchacza dla polecen z myForm nasz obiekt MIDlet.
Po wywołaniu komendy wykonywana jest metoda commandAction która rozpoznaje typ komendy i wykonuje odpowiednie polecenie.

No i ostatnie dwie linie do omówienia...
Display display = Display.getDisplay(this) - pobiera obiekt managera ekranu, to na nim są wyświetlane wszystkie Formy.
display.setCurrent(myForm) - ustawiamy jako wyświetlany Formularz nasz stworzony z napisem.

To wszystko :)
Zapraszam do komentowania/pytania i krytyki (no mercy !).

piątek, 1 lutego 2008

Evolution of Dance

Meeeeega moc :D


I jeszcze to: teksty by rydzyk sp. z o.o.

The art of .... stupidity.

W jednym z brytyjskich portali pojawiła się lista najgłupszych odpowiedzi w teleturniejach/quizach. Oto kilka z nich:

Pyt: Co wydarzyło się w Dallas 22 listopada 1963 roku?
Odp: Nie wiem, wtedy nie oglądałem.

Pyt.: Który aktor amerykański jest mężem Nicole Kidman?
Odp.: Forrest Gump.

Pyt.: W którym kraju znajduje się Mount Everest?
Odp.: Hm, to nie Szkocja, prawda?

Pyt.: Podaj tytuł filmu z Bobem Hoskinsem. Jest to zarazem tytuł słynnego obrazu Leonarda da Vinci.
Odp.: Kto wrobił królika Rabbita?

Pyt.: W którym mieście europejskim powstała pierwsza opera?
Odp.: Sydney.

Pyt.: Jak długo trwała wojna sześciodniowa między Izraelem a Egiptem?
Odp. (po dłuższym namyśle): Czternaście dni.

Pyt.: Gdzie odbywały się lądowania Aliantów (D-Day)?
Odp.: Pearl Harbour?

Pyt.: Jaką walutę mają Indie? Odp.: Ramadan.

Pyt.: Którą postać ubraną tylko w przepaskę na biodrach i huśtającą się na lianach grał Johnny Weissmuller?
Odp.: Jezusa.

Pyt.: Ile metrów ma kilometr?
Odp.: Trzy.

Pyt.: Ile kół ma trójkołowiec?
Odp.: Dwa.

Pyt.: Znamy trzy stany skupienia - stały, ciekły i...?
Odp.: Galaretka.


Zwycięzcom gratulujemy !

Źródło onet.pl