php developer & web designer
Ostatnio Ubuntu zaktualizowaÅ‚o SambÄ™ i przestaÅ‚y dziaÅ‚ać linki symboliczne (błąd dostÄ™pu: access denied), a wÅ‚aÅ›nie w ten sposób do home’a podpiÄ™ty mam /var/www/, czyli aplikacje webowe. NastÄ™pnie, w ramach potrzeby, w Windows mapuje do dysku swój katalog domowy z linuxa. W ten sposób spod drugiego systemu mogÄ™ pracować na tych samych plikach i w tym samym Å›rodowisku.
Rozwiązanie owego problemu zajęło mi kilka (dłuższych) chwil. Co ciekawe, okazało się ono dziecinnie proste.
Poniższe trzy linijki należy wpisać do pliku konfiguracyjnego (/etc/samba/smb.conf) w sekcji global:
follow symlinks = yes
wide symlinks = yes
unix extensions = no
Następnie restartujemy sambę:
sudo /etc/init.d/samba restart
lub drugim sposobem (gdy mamy zainstalowany sysvconfig):
sudo service samba restart
PiszÄ™ to z dwóch powodów. Po pierwsze – ku pamiÄ™ci. Po drugie dlatego, iż jednemu koledze już udzieliÅ‚em powyższej rady. WiÄ™c widać problem jest dość czÄ™sto spotykany.
TytuÅ‚ może na pierwszy rzut oka być nieco mylÄ…cy. Nie chodzi o jakÄ…Å› lukÄ™ bezpieczeÅ„stwa. Po prostu możemy zainstalować Pythona we wÅ‚asnym katalogu domowym – na przykÅ‚ad wtedy, gdy na serwerze oferowana jest starsza wersja a admini nie sÄ… skorzy do upgrade ![]()
WÅ‚aÅ›nie zaczÄ…Å‚em zagłębiać siÄ™ w ten jÄ™zyk programowania, napisaÅ‚em pierwszÄ… aplikacjÄ™ którÄ… chciaÅ‚em odpalić na serwerze, ale tam byÅ‚ Python 2.5 (a potrzebowaÅ‚em 2.6). Admini stwierdzili, że w używanej dystrybucji Debiana jako najnowsza jest 2.5 i nie zrobiÄ… upgrade (swojÄ… drogÄ…, chyba stary nieco ten Debian)… Tyle tytuÅ‚em wstÄ™pu.
Z pomocą przyszedł kolega Zbiju, który podpowiedział że da się zainstalować Pythona na serwerze nie mając praw superużytkownika (bez użycia sudo). Podesłał też link do opisu takiej instalacji. Autorem opisu jest niejaki bobince.
Utwórzmy katalog (np. .local) w domowym (u mnie: /home/webit/.local/), a następnie przejdźmy do niego (cd .local/).
Pobierzmy Pythona i wypakujmy z archiwum tarball (.tgz) źródła:
wget http://python.org/ftp/python/2.6.4/Python-2.6.4.tgz; tar -xf Python-2.6.4.tgz
Przejdźmy do katalogu ze źródłami:
cd Python-2.6.4/
Teraz pozostaje nam kompilacja ze źródeÅ‚ – wykonujemy w tym celu po kolei:
./configure --prefix=/home/webit/.local
make
make install
Gotowe!.
Aby skorzystać z właśnie zainstalowanego Pythona należy wykonać polecenie:
/home/webit/.local/bin/python
gdyż właśnie w tym miejscu znajduje się binarka.
Warto zapamiętać, że skrypt wykonywalny w powłoce także powinien używać tej ścieżki. System musi wiedzieć, że ma skorzystać z naszego interpretera, a nie domyślnie dostępnego w systemie. W tym celu w pierwszej linii skryptu wpiszemy:
#!/home/webit/.local/bin/python
Pozostaje życzyć miłego kodowania
Wprowadzenie
W firmie, do projektu w którym biorę udział, przygotowaliśmy większą paczkę zmian. Powiedzmy, że wersja produkcyjna bazuje na rewizji sprzed miesiąca (korzystamy z SVN; przy każdym commit podajemy ID i url do ticketa).
W miÄ™dzyczasie rozwiÄ…zaliÅ›my w teamie okoÅ‚o 15 ticketów i nasz project manager potrzebowaÅ‚ ich listÄ™, aby przekazać klientowi do ostatecznego sprawdzenia na stagingu. Jako że jestem najbardziej doÅ›wiadczonÄ… osobÄ… w projekcie – padÅ‚o na mnie
Sposób pierwszy (oldschool)
Niby prosta czynność, bo przecież możemy otworzyć system ticketów, wyszukać wszystkie rozwiÄ…zane w ciÄ…gu miesiÄ…ca, a nastÄ™pnie spisać ID i url każdego ticketa. TrochÄ™ czasu by to zajęło…
Sposób drugi (nu skool)
PomyÅ›laÅ‚em, “hej, musi być inna droga”.
Pomocny, po raz kolejny, okazaÅ‚ siÄ™ Eclipse. Aby usprawnić caÅ‚y proces (który zajmie nam ok 30-60 sekund) musimy przejść na perspektywÄ™ “SVN Repository Exploring”. NastÄ™pnie wybieramy w panelu “SVN Repositories” repozytorium i włączamy podglÄ…d historii (“Show history”).
W panelu “History” zaznaczamy interesujÄ…ce nas rewizje i z menu kontekstowego wybieramy “Generate ChangeLog”:

W okienku, które się otworzy, mamy wybór jaki format ma mieć nasz changelog oraz gdzie ma być zapisany (w schowku czy na dysku):

Wybrałem domyślne ustawienie (svn log + schowek). Wkleiłem do edytora zawartość schowka i oto co otrzymałem:

Podsumowanie
Jak widać cała operacja jest bardzo prosta i w pełni zautomatyzowana. Co więcej, jest bardzo pomocna
Niemal rok temu pisaÅ‚em jak zainstalować system Trac w Ubuntu. Niedawno jednak przeinstalowaÅ‚em Ubuntu “od zera” (majÄ…c oczywiÅ›cie kopie wczeÅ›niejszej wersji systemu).
Przy okazji odbudowy systemu postanowiłem przenieść repozytoria svn z /var/lib/svn (jak podałem w zeszłorocznym wpisie) na /home/subversion.
Zmiana podyktowana jest wygodÄ… i wiÄ™kszym bezpieczeÅ„stwem – po prostu /home mam na osobnej partycji, dlatego nie tracÄ™ danych przy ewentualnym padzie systemu i koniecznoÅ›ci reinstalacji.
Jak zatem “przestawić” Trac’a, aby używaÅ‚ nowej lokalizacji repozytorium svn?
Po pierwsze edytujemy konfiguracje każdego z projektów trac (/var/lib/trac/[NAZWA PROJEKTU]/conf/trac.ini).
Odszukujemy liniÄ™:
repository_dir = /var/lib/svn/[NAZWA PROJEKTU]
i zamieniamy jÄ… na:
repository_dir = /home/subversion/[NAZWA PROJEKTU]
Otwierając stronę projektu w przeglądarce (http://127.0.0.1/projects/[NAZWA PROJEKTU]) zobaczymy ostrzeżenie o treści:
Warning: Can’t synchronize with the repository (The ‘repository_dir’ has changed, a ‘trac-admin resync’ operation is needed.). Look in the Trac log for more information.
Wszystko powinno być jasne. Przechodzimy do konsoli i wykonujemy następujące polecenie (będąc w /var/lib/trac):
trac-admin [NAZWA PROJEKTU] resync
Gotowe!
24 paź 2009
Gmail Manager to bardzo przydatne rozszerzenie do Firefoxa. Umożliwia sprawdzanie kilku kont Gmail (zarówno regularnych jak i w ramach Google Apps) i powiadamianie o nowej poczcie.
Niestety konta domyślnie posortowane są wg kolejności ich definiowania, a rozszerzenie nie oferuje możliwości zmiany kolejności.
Możemy jednak dość Å‚atwo zmienić kolejność kont, ale musimy trochÄ™ “pogrzebać” w pliku konfiguracyjnym. Bez obaw operacja jest w miarÄ™ prosta
W tym celu odszukujemy katalog z profilem, jaki używamy w Firefox (jak znaleźć katalog z profilem dowiesz się z pomocy).
NastÄ™pnie przechodzimy do katalogu gmanager i otwieramy do edycji plik prefs.xml (polecam edytor podÅ›wietlajÄ…cy skÅ‚adniÄ™ XML – dla Windows np Notepad++).
UWAGA: jeÅ›li nie jesteÅ› obeznany ze skÅ‚adniÄ… XML, wykonaj wczeÅ›niej kopiÄ™ pliku! PamiÄ™taj – uszkadzajÄ…c plik (błędna skÅ‚adnia xml) – rozszerzenie może przestać dziaÅ‚ać.
W pliku odszukujemy elementy zaczynajÄ…ce siÄ™ od <account type="gmail" email="TWOJE.KONTO@gmail.com" alias="TWOJE.KONTO@gmail.com"> … i koÅ„czÄ…ce </account> (zawierajÄ… one konfiguracjÄ™ danego konta).
Możemy je przenosić jeden pod drugi, dowolnie ustalając kolejność kont w rozszerzeniu.
Zapisujemy plik, restartujemy Firefox i gotowe!
22 paź 2009
Czasami zdarza siÄ™, że usuniemy jakiÅ› plik z projektu (różne możliwe przyczyny). Czasami jednak, po kilku godzinach lub dniach, okazuje siÄ™, że jednak ten plik byÅ‚ nam potrzebny… Co w takim przypadku zrobić?
Edytor Eclipse ma bardzo fajnÄ… funkcjÄ™ porównania z lokalnÄ… historiÄ… (Compate With > Local History…).
Aby odtworzyć plik – tworzymy w miejscu jego usuniÄ™cia pusty plik z takÄ… samÄ… nazwÄ…. NastÄ™pnie z menu kontekstowego pliku wybieramy wÅ‚aÅ›nie Compate With a nastÄ™pnie Local History…
Jedna uwaga, domyślnie historia pliku trzymana jest przez 7 dni, ma maksymalnie 50 zmian i nie może zajmować więcej niz 1 MB.
Oczywiście można to zmienić w ustawieniach Eclipse (Window > Preferences) wybierając w lewym menu General > Workspace > Local History.
PamiÄ™tajcie – porównanie pliku z historiÄ… zmian jest bardzo przydatne także w trakcie pisania kodu
Dziś szybki wpis odnośnie problemów z flashem pod Firefoxem. Otóż od dłuższego czasu, każda strona zawierająca flash strasznie powoli ładowała się, a w dodatku użycie CPU (procesora) skakało na 100%, uniemożliwiając normalną pracę.
Poszukałem rozwiązania na forum Ubuntu i tak oto trafiłem na bardzo prosty sposób (skuteczny!) naprawienia problemu.
Jak pisze autor, Johnny B, wystarczy pobrać ze strony Adobe archiwum zawierające bibliotekę libflashplayer.so.
Następnie wystarczy skopiować dołączony do wpisu kod do pliku shellowego, nadać prawa uruchamiania i odpalić go jako będąc zalogowanym na super użytkownika (root). Skrypt usuwa stare biblioteki, kopiuje ściągnięty plik w odpowiednią lokalizację, tworzy linki symboliczne oraz plik konfiguracji. Jednym słowem w pełni zautomatyzowana operacja.
Kod skryptu znajdziesz na http://ubuntuforums.org/showpost.php?p=8085812&postcount=14.
Zasadniczo, aby otrzymać kopię projektu gotową do użycia poza repozytorium możemy skorzystać z komendy:
svn export
W ten sposób wyeksportujemy sobie projekt do jakiegoÅ› katalogu, który nie bÄ™dzie zawieraÅ‚ podkatalogów .svn (meta informacje Subversion). Niestety ma to też wady, zasoby z wÅ‚aÅ›ciwoÅ›ciami svn:ignore zostanÄ… pominiÄ™te… ale nie o tym mowa
Powiedzmy, że mamy projekt współdzielony w jakimś repozytorium. Powiedzmy, że serwer repozytorium padł (i nie ma backupu) lub został wyłączony, czy w końcu całkowicie chcemy zrezygnować z pracy z SVN. Co zrobić w takim przypadku?
Okazuje się, że klient svn nie umożliwia odpięcia, tudzież wypięcia, projektu z repozytorium. W takim przypadku pomocna przydaje się znajomość powłoki. Wykonujemy, będąc w katalogu projektu, następującą komendę:
$ rm -rf `find . -type d -name .svn`
OczywiÅ›cie można to sobie uproÅ›cić. UżywajÄ…c Subclipse – plugina do Eclipse – wystarczy wybrać z menu kontekstowego projektu: Team > Disconnect.
Co zrobić jeśli nie chcemy udostępniać konta gościa (funkcjonalność dostępna w Ubuntu 8.10 wzwyż)?
Należy wykonać prostą komendę:
sudo apt-get remove gdm-guest-session
A następnie zrestartować środowisko GDM (Ctrl+Alt+Backspace). I gotowe!
Do surfowania po sieci głownie używam Firefoxa. Jednak ostatnio zauważyłem, że pod linuxem (Ubuntu) znacznie szybciej radzi sobie Opera. I nie chodzi tu tylko o czas ładowania stron, sam start aplikacji jest dużo sprawniejszy.
Opery używam tylko jak potrzebuje coś szybko znaleźć i nie chce czekać na załadowanie ulubionej przeglądarki. Ostatnio dostałem od kolegi linka do YouTube. Jakież było moje rozczarowanie, gdy zauważyłem poniższy komunikat:
PoszukaÅ‚em rozwiÄ…zania problemu na oficjalnych forach Ubuntu. RozwiÄ…zanie okazaÅ‚o siÄ™ równie proste co zaskakujÄ…ce…
Aby włączyć obsługę flash w Operze (oczywiście mając już zainstalowany player, nieważne czy to firmy adobe czy przygotowany przez środowisko open-source) wystarczy otworzyć Narzędzia > Preferencje. Następnie wybrać w lewym okienku Zawartość a w prawym zaznaczyć Włącz obsługę wtyczek.
To wszystko! Nie trzeba nawet restartować Opery. Wystarczy odświeżyć stronę.
Tytuł postu nieco przewrotny i niezrozumiały zapewne, ale już tłumaczę o co chodzi
Subversion, w sktócie SVN, to system kontroli wersji, wzorowany na używanym bardzo często niegdyś CVS.
Osobiście, oraz w pracy, korzystam(y) z SVN bardzo często. Praktycznie każdy projekt podpinam do repozytorium. Dzięki temu mam możliwość cofnięcia aplikacji do dowolnego jej stanu (czy to do rewizji, czy tagu/brancha), no i co najważniejsze dzięki systemowi kontroli wersji nad projektem może pracować niemalże nieskończona ilość developerów.
Nie chcÄ™ siÄ™ tu rozpisywać o tym czym sÄ… owe tagi i branche (gałęzie kodu) oraz jak obsÅ‚ugiwać SVN – na to przyjdzie jeszcze czas ![]()
(wiÄ™cej…)
24 lis 2008
Ostatnio postanowiłem sprawdzić, w jaki (prosty) sposób można zliczać kliknięcia w linki zewnętrzne na naszej stronie. Przez linki zewnętrzne rozumie wszystkie te, które kierują Internautę na stronę poza naszą domeną.
Pogrzebałem w sieci i trafiłem na pomysł zliczania owych kliknięć po przez utworzenie wywołania do obrazka, który de facto będzie prostym plikiem server-side (lub cgi) zapisującym akcje do bazy.
(wiÄ™cej…)
W linuxowych systemach, system plików (np. ext3) można sprawdzić (i naprawić w razie konieczności) komendą fsck.
Szkopuł w tym, że komendę można wykonać tylko na niepodmontowanym zasobie. Rozwiązania są zatem dwa. Zbootowanie systemu z dysku cd (tudzież z innego napędu) i odpalenie fsck na wybranym zasobie.
Rozwiązanie drugie, jakże proste, polega na utworzeniu pustego pliku forcefsck w głównym katalogu systemu, czyli /.
Można dokonać tego komendą:
touch /forcefsck
oczywiście mając uprawnienia root (np. używając komendy sudo). Następny start systemu wymusi sprawdzenie każdego linuxowego systemu plików.
Najnowsze komentarze