Mar 31 2010

Opozniony autostart programow

Jak prosto, bez pisania zbednych skryptow opoznic autostart program podczas podnoszenia systemu?

Firestarter na przyklad, sypie sie czasem bledem Failed to start the firewall. The device eth0 is not ready. Nie jest to problem, poniewaz iptables, uruchamia sie niezaleznie od jego kondycji, wiec komputer jest bezpieczny. Tak czy innaczej nie wyglada to profesjonalnie, dlatego wlasnie nim, posluze sie, do zademonstrowania zdelayowanego uruchamiania.

Wlazimy do System->Preferencje->Programy startowe, szukamy wpisu Firestarter lub klikamy Dodaj jezeli nie byl wczesniej skonfigurowany.

I wpisujemy nastepujace polecenie

bash -c "sleep 5; sudo firestarter --start-hidden"

ten oto prosty zabieg wstrzyma uruchomienie programu na 5 sekund.

Jezeli nie masz zainstalowanego Firestarter’a a chcialbys, to wystarczy wywolac nastepujaca instrukcje

czlowiek@maszyna:~$ sudo apt-get install firestarter

Instrukcja konfiguracji dostepna jest tutaj


Mar 19 2010

Ubuntu 10.04 Beta

Mozna juz sciagnac i zainstalowac najnowsza wersje systemu operacyjnego Linux Ubuntu 10.04 juz w wersji Beta.

Przeglad techniczny, zmiany sa opisane tutaj.

Szybki upgrade do dziesiec.czworki

czlowiek@maszyna:~$ update-manager -d

Wlasnie puscilem na stacji, he hehe


Mar 19 2010

XML-RPC, wylaczenie gzipa w Apache dla IE6

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


Mar 19 2010

JS Call Later

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


Mar 7 2010

Android, PC RC i uruchamianie programow na X’ach przez SSH

Czasem z powodu /lenia/, nie chce mi sie wstac z kanapy i wlaczyc programik na MC w tradycyjny sposob, a klawiatura i mysz bezprzewodowa jest za daleko ;) , wiec zaczalem szukac innej mozliwosci, az w koncu doszedlem do nastepujacego wniosku… zdalne sterowanie komputerem z Androida jest w tych warunkach najbardziej optymalne. Jakis czas temu poruszalem temat PC Remote Control, ale do tego potrzeba uruchomionego programiku na sterowanym komputerze. Wiec dzisiaj zajmieny sie zdalnym uruchomieniem programu wymaganego do zdalnego sterowania komputerem :) .

Na poczatek przygotujemy kanal zdalnego uruchamiania programow przez SSH.

1. Instalujemy serwer SSH na komputerze – Polaczenie ssh w Ubuntu.

2. Instalujemy ConnectBot na smartphonie z Androidem

Logujemy sie na zdalny komputer

Testujemy uruchamianie programow na X’ach z ConnectBot’a

czlowiek@zdalny:~$ export DISPLAY=:0.0
czlowiek@zdalny:~$ sudo -u czlowiek gedit

Po tym na ekranie PC powinien otworzyc sie GEdit.

Dobrze, jak mozemy juz uruchamiac programy na desktopie przy pomocy SSH, przejdzmy do zdalnego sterowania.

3. Pobieramy RemoteDroid Server, ktory umozliwi zdalne sterowanie a dokladnie odbierze z Androida sygnalowki myszy i klawiatury, co na poczatek wystarcza w zupelnosci.

Dzis najnowsza dostepna wersja jest RemoteDroid Server 1.4

czlowiek@maszyna:~$ mkdir -p ~/Programy/RDS && cd ~/Programy/RDS
czlowiek@maszyna:~/Programy/RDS$ wget http://www.remotedroid.net/RemoteDroidServer_v1.4.zip && unzip RemoteDroidServer_v1.4.zip

4. Zdalnie z Androida za pomoca ConnectBot’a uruchamiamy RDS

czlowiek@zdalny:~$ export DISPLAY=:0.0
czlowiek@zdalny:~$ java -jar ~/Programy/RDS/RemoteDroidServer/RemoteDroidServer.jar
Linux

Super, jeszcze tylko jedem maly szczegol.

4. Instalujemy RemoteDroid na Androidzie

Teraz juz nie musisz wstawac z kanapy aby wlaczyc swoj ulubiony programik ;)