Apr
27
2010
Polscy programisci i handlowcy sa dyskryminowani w uslugach takich jak Google Android Market i Google Merchant Center. Powstala na szczescie petycja, ktora mozesz podpisac i w ten sposob zaprotestowac przeciwko tym praktykom. Szanuje Google za mnogosc profesjonalnych i darmowych uslug, ale kwestia AM i MC powinna byc uregulowana.
Platne aplikacje na Android Market
brak komentarzy | tagi: Android, Google, petycja, programowanie | wpis w Android, Android, Mixed
Apr
15
2010
Udalo mi sie w koncu znalezc troche czasu i doprowadzic do ladu RemotePad i RCServer, a przynajmniej do wersji Beta, ktora nie zniszczy urzadzen. Zart.
RemotePad
Program umozliwiajacy zdalne sterowanie komputerem z telefonu wyposazonego w modul Wi-Fi – narazie tez, wyposazonego w system Android – jest juz dostepny w Android Market, mozna go searchnac.
Na dzien dzisiejszy dziala touchpad, po czesci klawiatura (myslalem, ze bedzie to prostsze
), przeszukiwanie sieci i automatyczne dodanie jezeli serwer dziala na domyslnych portach.
Juz wkrotce nastepna wersja z dzialajacym wskaznikiem. Fajny bajer do prowadzenia prezentacji. Nic jednak by nie dzialalo, jakby nie robot instalowany na komputerze, ktorym chcemy sterowac.
RCServer
Serwer umozliwia zdalne sterowanie komputerem z urzadzen przenosnych podlaczonych do sieci WLAN, takich jak nasz smartphone z Androidem. Serwerek napisany w Javie, jest raczej multiplatformowy, a przynajmniej dziala na Linuxie, Windowsie i Mac OS Xie (teoretycznie
).
Tutaj do pobrania najswiezsza wersja RCServera
No i QR kod RemotePad’a do zeskanowania

brak komentarzy | tagi: Android, RCServer, RemotePad | wpis w Android, Android, Programy
Apr
12
2010
Jezeli juz z jakiegos dziwnego powodu, przeinstalujemy Linuxa, to pojawia sie kwestia ponownego podlaczenia uslug do juz istniejacych danych. Tak jest na przyklad z repo SVN, i tu nalezy …
Zainstalowac subversion
czlowiek@maszyna:~$ sudo apt-get install subversion
I teoretycznie tyle
.
Jezeli zas, mamy problem z prawami – taki jakis Permission denied – to nalezy …
Grepnac proces SVNa i namierzyc wlasciciela (tu czlowiek)
czlowiek@maszyna:~$ ps faux | grep svnserve
czlowiek 29481 0.0 0.0 3336 800 pts/0 S+ 20:45 0:00 \_ grep svnserve
Zmienic ownera repo (tu sciezka /home/svn/)
czlowiek@maszyna:~$ cd /home/svn
czlowiek@maszyna:/home/svn$ sudo chown czlowiek: -R *
I to raczej wystarczy. Mozna oczywiscie bawic sie z Apache, instalowac jakies moduly, itp… ale po co, jezeli chcemy skorzystac jedynie z Eclipse?
brak komentarzy | tagi: Eclipse, reinstall, SVN | wpis w Konfiguracja, Programowanie
Mar
19
2010
W aplikacjach klient-serwer z konektem po XML-RPC, natrafimy na problem komunikacji, gdy klient uzywa przegladarki IE6. Wiec. Jezeli gzip’em sterujemy bezposrednio z Javki to przy generowaniu response musimy go wylaczyc. Jezeli Tomcat nakryty jest Apachem to nastepujaca dyrektywa jest konieczna aby klient stworzony, na przyklad we Flashu mogl poprawnie odebrac odpowiedz.
BrowserMatch \bMSIE\s6 no-gzip gzip-only-text/html
Oczywiscie wlaczamy mod deflate w Apache
1 komentarz | tagi: ajp, apache, Flash, komunikacja, tomcat, XML | wpis w Flex/Air, Konfiguracja, Web
Mar
19
2010
Taki prosty skrypcik, umozliwiajacy wywolanie metody JavaScript z czasowym opoznieniem. Przydatne gdy chcemy na przyklad wyswietlic plywajacego diva 5 sekund po zaladowaniu strony, albo ukryc elementy widoku po 5 sekundach
Utworzmy klase obiektu dbajacego o wywolanie okreslonej metody po zadanym czasie a nastepnie sie zniszczy
loCallTimer = function(id, func, args, time)
{
if (typeof(id) == "undefined") {
return;
}
this.id = id;
this.func = func || null;
this.args = args || null;
this.time = time || 1500;
this.timer = null;
};
loCallTimer.prototype.suicide = function()
{
this.stopTimer();
eval("window.ct_" + this.id + " = null;");
};
loCallTimer.prototype.onTime = function()
{
if (typeof(this.args) == "undefined" || this.args == null || this.args.length == 0) {
this.func();
} else {
this.func.apply(this.func, this.args);
}
this.suicide();
};
loCallTimer.prototype.runTimer = function()
{
this.stopTimer();
this.timer = window.setTimeout("window.ct_" + this.id + ".onTime();", this.time);
};
loCallTimer.prototype.stopTimer = function()
{
if (this.timer != null) {
window.clearTimeout(this.timer);
this.timer = null;
}
};
Wyzwalacz
function callLater(func, args, time) {
var id = (new Date()).getTime();
var ct = eval("window.ct_" + id + " = new loCallTimer(" + id + ");");
ct.func = func;
ct.args = args;
ct.time = time;
ct.runTimer();
return ct;
};
Testujemy
czytaj dalej
brak komentarzy | tagi: JS, Web | wpis w JS/AJAX, Web