2012-07-01

Tunelem SSH do Apache'a

Załóżmy, że masz na jakimś serwerze Apache'a, którego nie chcesz wystawiać na świat a jednocześnie chcesz mieć do niego dostęp z każdego miejsca na świecie. :-) Nie chcesz otwierać na firewallu portu 80 ani żadnego innego oprócz tego, przez który logujesz się do maszyny za pomocą SSH (np. 9999). W takim przypadku z pomocą przychodzi tunelowanie - wystarczy zamiast:
ssh -p 9999 user@adres.mojego-serwera.pl
wpisać:
ssh -p 9999 user@adres.mojego-serwera.pl -L 9980:localhost:80
Po takim zabiegu wchodzimy w przeglądarkę, wpisujemy w pole adresu:
http://localhost:9980
i już jesteśmy na Apache'u serwera, który "stoi" na zamkniętym porcie 80.

2012-03-29

NetBeans IDE dla PHP

Dziś postanowiłem odpocząć od Eclipse i poszukać alternatywnego IDE dla PHP - padło na NetBeans.
Pierwsze testy przeszły bardzo pomyślnie - założenie projektu z istniejącego źródła poszło bezboleśnie, svn działa bez żadnych problemów bez konieczności kombinowania w ustawieniach. NetBeans poza obsługą MySql umożliwia również podpięcie się do bazy PostgreSQL - wystarczy jedynie podać parametry - żadnych dodatkowych "szpagatów". To dla mnie fantastyczna sprawa... :-)
Jak na razie problem miałem jedynie z zaznaczaniem bloku tekstu (Block Selection Mode), który w Eclipse dla PHP jest dostępny po wciśnięciu kombinacji klawiszy Ctrl+Shift+A. W NetBeans trzeba ściągnąć i zainstalować plugin, który umożliwia tego typu zaznaczanie tekstu. Plugin nazywa się Rectangular Edit Tools i można go znaleźć pod adresem: http://plugins.netbeans.org/PluginPortal/faces/PluginDetailPage.jsp?pluginid=33497

Już po chwili gotów jestem zaryzykować stwierdzenie, że NetBeans IDE w wersji 7.1.1 jest naprawdę godny uwagi... :)

2011-11-26

[linux] Boot z Grub'a

Miałem dziś małą zabawę z instalacją Ubuntu na laptopie Toshiby. To archaiczny sprzęt, na którym instalacja systemu to prawdziwa męka. Po wielu próbach udało mi się zainstalować na nim Ubuntu - jednak zainstalowałem system na dysku zewnętrznym przez USB a później włożyłem dysk do czeluści tego laptopa. :-) Oczywiście system nie wstał ale odpalił się Grub, w którym wystarczyło wpisać:
root (hd0,1)
linux /vmlinuz root=/dev/sda1
initrd /initrd.img
boot
Po tym zabiegu wszystko pięknie śmiga... :-)

2011-07-28

[jQuery] Tablica z wynikami wyciągnięta za pomocą $.post

$.post umożliwia (oprócz zwykłych ciągów znaków) odebranie całej tablicy z danymi - bardzo fajna sprawa dzięki której dziś zrobiło mi się lżej na sercu. :) Żeby odebrać taki "array" a nie tylko "string" wystarczy po argumentach funkcji $.post dodać znacznik "json":

$.post("test.php", { "func": "getNameAndTime" },
function(data){
console.log(data.name); // John
console.log(data.time); // 2pm
}, "json");

W pliku test.php z którego pobieramy dane wystarczy zamiast zwykłego

echo "zwykly ciag znakow";
dać

echo json_encode(array("name"=>"John","time"=>"2pm"));

Żródło: http://api.jquery.com/jQuery.post/

2011-06-21

[svn] Can't find a temporary directory: Internal error

Jeśli pojawia Ci się przy svn update komunikat w stylu:

Can't find a temporary directory: Internal error

to znaczy, że możesz mieć problem z miejscem na dysku na serwerze - radzę sprawdzić to w pierwszej kolejności (np. komendą df -h). :-)

2011-06-19

[unix][curl] Download wielu plików z zabezpieczonego katalogu

Jeśli nie masz uprawnień do przeglądania zawartości katalogu www - tzn. otrzymujesz komunikat typu:

Forbidden

You don't have permission to access /images/xyz/ on this server.
Apache Server at www.tajemny-host.com Port 80

a do tego znasz mniej więcej nazewnictwo plików znajdujących się w katalogu to jest szansa, że uda Ci się pobrać zawartość. Wszystko dzięki curl - wystarczy, że wpiszesz z linii poleceń:


curl http://www.tajemny-host.com/images/img[00-99]_[A-Z].jpg -o img#1_#2.jpg

Przyjąłem tutaj, że pliki w katalogu xyz mogą mieć nazwy typu img28_C.jpg albo img47_A.jpg. Curl za pomocą powyższej linijki kodu ściągnie tego typu pliki bez większego problemu - fantastyczna sprawa. :-)

2011-06-16

[jQuery] wiele elementów do jednego eventa

Istnieje możliwość podpięcia kilku elementów do jednego zdarzenia - można zrobić to mniej więcej w taki sposób:

var idleka_search = $("#idleka_search");
var idkorg_search = $("#idkorg_search");
var idfdm_search = $("#idfdm_search");

var combined = idleka_search.add(idkorg_search);
combined = combined.add(idfdm_search);

$(combined).change(function(){ ... });