niedziela, grudnia 12, 2010

Chrome OS, Chrome2Chrome i w ogóle Chrome ;-)

Faza Chrome/Chrome OS nadal u mnie trwa ;-)

Dotarło np. do mnie, że komputer z Chrome OS to będzie idealna maszyna dla mojej mamy :-), która boi się, że "coś popsuje", a w Chrome OS to się po prostu nie może zdarzyć.

Jedyną przeszkodą jest brak możliwości uruchomienia na Chrome OS bazy książek, którą sobie kiedyś napisałem (w Turbo Pascalu z użyciem TurboVision), a która to baza jest używana przez moją mamę do trzymania katalogu książek.
Ale zaczęło mi się w głowie roić, że skoro chciałbym mieć też listę książek na telefonie to można by było połączyć obie rzeczy i napisać prostą aplikację dla Chrome, która pokazywałaby bazę książek, przechowywałaby ją zaś albo lokalnie (przy pomocy localStorage) albo w Google Docs, i w przypadku trzymania w Google Docs mogłaby pobierać też te dane na telefon i byłoby jak znalazł w księgarni.

Jeszcze Skype brakuje dla Chrome OS... ale przecież zawsze można zacząć używać Google Talka/Google Voice.

Bawiłem się też dziś w tworzenie Chrome2Chrome i oto efekty:



Ikonki jeszcze nie mam i używam nadal ikonki z Buzz Troll Removera ;-) Samo UI też nie jest piękne, ale główna funkcjonalność czyli możliwość przesyłania stron między różnymi komputerami już działa :-)

Akurat na tym filmie złośliwie trwa to aż 10 sekund [i nie widać momentu gdy zamykam na EEE PC dialog wyrzucony przez system, który mówi o tym, że coś padło ;-)], ale zwykle jest to o wiele szybsze.

Wszystko działa w taki sposób, że każda z przeglądarek z Chrome2Chrome co 2.5 sekundy pobiera listę dokumentów w folderze Chrome2Chrome w Google Docs [jak trzeba to tworzy ten folder], jeżeli znajdzie jakikolwiek plik o nazwie zaczynającej się od _, a następnie nazwy komputera i znów _ to pobiera ten plik, otwiera stronę której adres jest w tym pliku i kasuje go z Google Docs.
Wysyłanie strony to po prostu stworzenie pliku tekstowego z nazwą _nazwaKomputera_jakieśID [które to jakieśID jest tylko po to by być bo nie musi być nawet unikatowe], w którym to pliku zapisany jest adres strony do otwarcia].

Sam kod do operowania na Google Docs to jakieś 280 linii kodu w JavaScript i to napisanego z wieloma powtórzeniami.

Np. upload wygląda tak:
    function upload(auth,folder,name,body) {
var req = new Object();
req.method="POST";
req.url="https://docs.google.com/feeds/default/private/full";
if (folder!=null) {
var elems = folder.split("%");
req.url+="/folder%"+elems[1]+"/contents";
}
req.body=body;
var headers = new Array();
headers.push({"name":"Content-Type","value":"text/plain"});
headers.push({"name":"Authorization","value":("GoogleLogin auth="+auth)});
headers.push({"name":"Slug","value":name});
headers.push({"name":"GData-Version","value":"3.0"});
req.headers=headers;
var retXML = fetch(req.url, req.method, req.headers, req.body, null,false,true);
return retXML;
}


Czyli już mam kod do operowania Google Docs z rozszerzenia ;-)
Jedynie update mi nie działa, ale możliwe, że to przez to iż zdecydowałem się na używanie wersji 3.0 API, i chyba trzeba będzie zrobić downgrade do wersji 2.0.


Podobne postybeta
Wysyłamy pliki do Google Docs przy pomocy Go :-)
Toperz ;-) czyli OCR + Android odsłona 2 albo któraś tam
Wredne Google Docs
Zmienne Go ;-)
AppInventor - pierwsze wrażenia i pierwsze programy :-)