Witam,
Po raz
trzeci na moim blogu pojawia się ten temat. Napisałem prosty programik zliczający czas pracy, na przykład czas pracy spędzony nad projektem. Bazą danych dla TaskCalculator jest kalendarz Google. Programik działa jako gadżet Google (
uruchom).
Nowa wersja zawiera raport sumaryczny, miesięczny oraz listę wszystkich wpisów w kalendarzu. Poprawiłem też kilka błędów.
Zapraszam!
Witam,
Jakiś czas temu rozpocząłem nowy projekt –
Task Calculator. Jego zadaniem jest utworzenie raportu sumującego czas pracy – jest mi to potrzebne do fakturowania mojego klienta. Dane o czasie pracy zapisywane są w
kalendarzu Google. Projekt na razie jest w fazie prototypu proof of concept: koncepcja się sprawdziła, kalkulator liczy – aczkolwiek jest jeszcze wiele błędów i rzeczy do zrobienia.
Aby uruchomić kalendarz trzeba mieć oczywiście konto w Google.
Task Calculator działa jako gadżet
Google Home Page. Najpierw w ustawieniach kalendarza należy wyszukać adres kalendarza XML:

Następnie należy zainstalować gadżet – Task Calculator –
kliknij tu. Dalej w preferencjach gadżetu wpisujemy adres URL odczytany wcześniej z preferencji kalendarza Google. Możemy też dodać dowolne słowa kluczowe, które będą ujęte w raporcie. Jeżeli wszystko działa dobrze, to na ekranie pojawi się raport:

Zapraszam do używania kalkulatora!
Witam,
Przeglądam sobie projekt
Google Mashup. Wygląda ciekawie, choć na razie trudno mi powiedzieć co to jest. Mamy
proste IDE działające przez przeglądarkę WWW, które umożliwia nam tworzenie specyficznych aplikacji. W kilkunastu liniach kodu możemy napisać aplikację typu: “lista zadań”. Aplikacja taka będzie działać oczywiście w przeglądarce WWW. Bazą danych – miejscem w którym zapisywane będą dane użytkownika – może być jego konto w Google.
Wszystko to w kilku liniach kodu.
Mashup szybko mnie wciągnął. Korzystając z przykładów, napisałem
pierwszy programik. Zajęło mi to tylko kilka minut. Już wiem czym będę teraz gasił
Lotus’owców).
Mashup podoba mi się tak bardzo, że zamierzam przepisać mój
Task Calculator wykorzystując właśnie tę technologię.
Pozdrawiam!!!
Od pewnego czasu zacząłem notować to co robię w Google Calendar. Dziś potrzebne mi są zestawienia – ile czasu zajmuje mi praca nad określoną czynnością. Potrzebuję wiedzieć, ile czasu pracuję nad projektem dla danego klienta, lub też ile godzin gram w koszykówkę. Jakiś czas temu napisałem kilka linii kodu, które demonstrują jak zacząć integrować
Google Calendar i Zend FrameworkM. Dziś postanowiłem się poprawić. Zacząłem pisać
Google Gadget który w zamyśle będzie to robił dobrze. Na chwile obecną gadget potrafi pobrać zadania z niezbyt dużego kalendarza, policzyć sumaryczny czas pracy dla wszystkich zapisów w kalendarzu i dla zapisów których tytuł pasuje do frazy. Istniej możliwość zdefiniowania wielu fraz.
Jest to dobry zalążek projektu który może być użyteczny dla szerokiego grona internautów.
Projekt dostępny jest pod adresem:
http://code.google.com/p/task-calculator/
Sam gadget jest tutaj:
http://task-calculator.googlecode.com/svn/trunk/TaskCalculatorGadget/WebContent/gadget.xml
Dla mnie funkcjonalność teraz jest już wystarczająca. Liczę sobie ile czasu poświęcam na zarabianie i na rozrywkę. Może samemu skończę pisać to coś? A może się do mnie przyłączysz ku chwale Internetu? Projekt jest otwarty, licencja to GPLv3.
PS. Dziś nazywam to
Task Calculator, jednak wydaje mi się, że lepsza nazwa to będzie:
Task Report, nie wiem…
O w mordę, czegoś takiego nigdy bym sobie wcześniej nie wyobrażał.
Phobos to framwork do tworzenia aplikacji WWW, gdzie językiem wykonywanym po stronie serwera jest – JavaScript. To dziwo napisane jest w Javie, wspiera
AJAX a nawet
Java Persistence Api (JPA) – taki standard dla mapowania obiektowo relacyjnego. Ma też swój własny język dla szablonów HTML (coś jakby
Smarty).
Pisząc aplikację w Phobos możemy to zrobić na przykład tak. Logikę biznesową możemy napisać w Javie wykorzystując JPA. Kontroler w JavaScripcie (wykonywanym na serwerze) a widok w specjalnym języku – EJS – który na pierwszy rzut oka przypomina JSP. Phobos mnie zainteresował.
Zdarzyło mi się, że potrzebowałem AJAX, gdzie serwer dostarczający dane będzie innym serwerem niż ten, z którego ładowana jest strona internetowa. Model DOM przeglądarek internetowych, w tym obiekt XMLHttpRequest będący podstawą wielu implementacji AJAX, ma zabronione operowanie na danych pobieranych z różnych domen (z różnych serwerów WWW). Na szczęście, miksowanie danych z pobieranych z różnych serwerów WWW jest możliwe – przykładem jest
Google AJAX Search Api. Dane z różnych serwerów WWW można miksować, każąc przeglądarce WWW wykonać nowy skrypt JavaScript, np.:
document.write
. Ja potrzebowałem trochę bardziej zaawansowanego rozwiązania, które umożliwiło by mi między innymi.:
- Wykonanie procedury po zakończeniu pobierania
- Grupowanie pobieranych skryptów i wykonaniu procedury po zakończeniu pobierania
.
- No i oczywiście pracę z różnymi domenami WWW
Postanowiłem więc zmodyfikować moją ulubioną bibliotekę
AdjAJAX – tak aby zamiast pobierania danych wykonywała skrypt z innej domeny. Sprawdziło się. Powstała biblioteka:
Cross Domain AJAX – którą opublikowałem na licencji LGPL, zgodnie z licencją AdvAJAX.
Biblioteka Cross Domain AJAX działa prawie tak samo jak AdvAJAX, z tym że zamiast pobierać dane (XML, Text), zmusza przeglądarkę do wykonania JavaScript.
Jak tego można używać?
Wyobraźmy sobie, że na serwerze A mamy dane, które chcemy udostępnić stronie WWW znajdującej się na serwerze B. Aby tego dokonać na serwer A ładujemy program, który po wykonaniu się zwróci nam kod JavaScript zostawiający w globalnej przestrzeni nazwy przeglądarki obiekt z danymi. Aplikacja z serwera B potrzebuje tych danych. Uruchamia ona moją bibliotekę – Cross Domain AJAX – która ładuje skrypt z serwera A. Po załadowaniu danych z serwera A sterowanie może być przekazane do dowolnej funkcji, na przykład rysującej fontannę.
Brzmi to skomplikowanie i może się wydawać zbyteczne – jednak jest na prawdę fajne.
Zapraszam do projektu:
Cross Domain AJAX.
Witam!
Od pewnego czasu interesuję się
AJAX a dziś chciałbym ponarzekać na
XMLHttpRequest. XMLHttpRequest jest obiektem, który kojarzy się z czarną robotą, który kryje się pod większością bibliotek do AJAX. XMLHttpRequest to obiekt w JavaScripcie który obsługuje żądania POST, GET, HEAD i umożliwia pobierania danych (na przykład XML) z serwera. Fajne! Niestety, tylko z tego serwera z którego uruchomiona jest strona. Można to rozwiązać, instalując program proxy u klienta, jednak instalowania aplikacji na serwerze klienta z punktu widzenia usługodawcy nie zawsze jest możliwe.
Hmm, w takim wypadku jak działa
Google AJAX Search Api? Używają mniej więcej czegoś takiego:
var s = document.createElement("script");
s.src="http://www.serwer.wsieci/skrypt.js?parametr1=wartosc1";
document.getElementsByTagName("head").item(0).appendChild(s);
Googlowcy nie używają XMLHttpRequest ponieważ na stronie klienta nie mogli by wczytać danych ze swojego serwera. XML i DOM przeszkadza, gdy aplikacja AJAX ma być uruchamiana na wielu domenach. Potrzebne jest wtedy prymitywne rozwiązanie oparte na poczciwym JavaScript: document.write wystarczy by pisać AJAX.
Witam,
Znalazłem
bibliotekę JavaScript do walidacji danych – FormChek.js (np. numery karty kredytowej). Mam do niej od razu patcha, gdyż mi nie działało.
// BOI, followed by an optional + or -, followed by one or more digits,
// followed by EOI.
-var reSignedInteger = /^(+|-)?\d+$/
+var reSignedInteger = /^([-+])?\d+$/
// BOI, followed by one of these two patterns:
@@ -208,7 +208,7 @@
// (a) one or more digits, followed by ., followed by zero or more digits
// (b) zero or more digits, followed by ., followed by one or more digits
// ... followed by EOI.
-var reSignedFloat = /^(((+|-)?\d+(\.\d*)?)|((+|-)?(\d*\.)?\d+))$/
+var reSignedFloat = /^((([-+])?\d+(\.\d*)?)|(([-+])?(\d*\.)?\d+))$/
// BOI, followed by one or more characters, followed by @,
// followed by one or more characters, followed by .,
W skrócie: wyrażenie (+|-) zastępuję ([-+]). Działa OK. Testowałem dla IE, Firefoxa, Opery i Konquerora.