13.102011
21:40
Rozproszona struktura systemu GIT umożliwia bardzo łatwe tworzenie zdalnych repozytoriów kodu, z którym można synchronizować swoje lokalne repozytoria. Nie ma nawet potrzeby w tym celu stawiania i konfiguracji serwera HTTP do komunikacji z repozytorium, czy wymogu jakiegoś dodatkowego specjalnego oprogramowania. Wystarczy serwer z zainstalowanym GITem, oraz dostęp do tego serwera przez protokół SSH.
Zdalne repozytorium komunikujące się przez protokół SSH można utworzyć na kilka sposobów. Jednym z nich jest utworzenie nowego czystego repozytorium na zdalnym serwerze posługując się komendą 'git init' (znajdując się w folderze gdzie będą przechowywane jego pliki). Innym rozwiązaniem jest skopiowanie na serwer istniejącego repozytorium nie tracąc przy tym historii jego aktualnych commitów. Skopiować można ręcznie – kopiując folder, lub posługując się komendą 'git clone'.
Nowe repozytorium trzeba przekształcić w repozytorium publiczne, czyli przechowujące tylko wysłane do niego obiekty – bez możliwości lokalnej modyfikacji plików. Zrobić to można za pomocą polecenia:
git config --bool core.bare true
lub, po prostu edytując plik konfiguracyjny w folderze repozytorium:
vim .git/config
i dodając flagę opcję bare = true w grupie [core].
Jeżeli w folderze z repozytorium zdalnego znajdują się jeszcze jakieś pliki, lub foldery poza samym '.git', można je usunąć – nie będą już potrzebne (właściwe repozytorium znajduje się właśnie w folderze '.git' i tam też są przechowywane wszystkie zatwierdzane do repozytorium zmiany).
Teraz pozostaje już tylko powiązanie lokalnego repozytorium ze zdalnym, czyli zapisanie informacji w tym lokalnym o ścieżce do zdalnego repozytorium. Służy do tego polecenie:
git remote add origin ssh://remote-srv.pl/home/my_repo
gdzie origin oznacza nazwę zdalnego repozytorium (oczywiście można wybrać dowolną).
Aby wysłać zatwierdzone zmiany z lokalnego repozytorium do zdalnego można to zrobić poleceniem:
git push origin master
Origin jest zapamiętaną nazwą zdalnego repozytorium, master to natomiast główna gałąź repozytorium.
Aby pobrać zmiany ze zdalnego repozytorium (co będzie nieraz konieczne, jeżeli ze zdalnego repozytorium korzysta wielu użytkowników) można użyć polecenia:
git pull origin master
Znaczenie parametrów takie samo jak w przypadku polecenia push.
18.092009
13:06
Temat nie jest jakiś szczególnie nowy. Już od kilku lat się słyszy o możliwości oglądania TV przez internet, Sam tym tematem się nie interesowałem, jednak ostatnio natknąłem się na ciekawy program umożliwiający przeglądanie sporej ilości kanałów TV za darmo. Mimo że powstało już wiele programów agregujących stacje telewizyjne transmitujące przez internet, postanowiłem wspomnieć o tym programie, ponieważ znacznie rzadziej można spotkać coś takiego działającego w systemie Linux.
Program dostarczony jest przez serwis LiveStation.com i działa na interfejsie QT3. Aby móc oglądać stacje telewizyjne musimy się w pierwszej kolejności zarejestrować w tym serwisie. Można to zrobić bezpośrednio z programu – zajmuje to około 3 sekund.

LiveStation - okno programu
Aktualnie do bazy dodanych jest ponad 3 tysiące programów. Na początku na liście naszych ulubionych kanałów znajduje się około 20 pozycji, z czego większość są to kanały informacyjne i często w języku trudno zrozumiałym (czytaj – nieanglojęzyczne). W bardzo łatwy sposób możemy wyszukać również nowe stacje i dodać je do listy. Ja zacząłem od przeglądnięcia kanałów muzycznych i parę z nich dodałem do swojej listy. Oglądając kanały telewizyjne możemy również komunikować się z innymi użytkownikami oglądającymi to co my w danej chwili przez chat wbudowany w program.
Z opcji, których mi brakuję mogę wymienić możliwość nagrywania, robienia screenu, czy dodawania nowych kanałów/strumieni bezpośrednio w programie, nie przez stronę www. Mimo wszystko zachęcam do samodzielnego sprawdzenia programu.
02.092009
17:28
Czasem zdarza się że w systemie, lub w naszych dokumentach natrafiamy na plik, który nie posiada rozszerzenia. Ze względu, że 'siedzi' on u nas już od niepamiętnych czasów to i jego typ może być już dla nas nieznany. Osoby bardziej obyte z różnymi typami plików mogą za pomocą polecenia cat przejrzeć zawartość pliku i po pierwszych linijkach odkryć, że jest to obrazek PNG, lub dokument Open Office'a. Dla tych, którzy nie wiedzą – istnieje prostszy sposób.
W celu identyfikacji takich plików może posłużyć nam program TrID autorstwa Marca Pontello. Rozpoznawanie plików za pomocą tego narzędzia jest bardzo proste. Należy zacząć od pobrania pliku programu i pliku bazy z definicjami typów. Po rozpakowaniu archiwów zmieniamy nazwę pliku bazy w ten sposób, aby wszystkie znaki były małymi literami (w innym przypadku program nie znajdzie bazy). Następnie z poziomu konsoli wpisujemy:
./trid plik
Dla przykładowo zidentyfikowanego pliku triddefs.trd otrzymujemy rezultat w postaci procentowej – jakiego typu jest wybrany plik:
TrID/32 - File Identifier v2.00/Linux - (C) 2003-06 By M.Pontello
Definitions found: 3820
Analyzing...
Collecting data from file: triddefs.trd
61.1% (.TRD) TrID defs package (22009/2/8)
27.7% (.AOS) AOS File Format (10000/1/3)
11.1% (.) Generic RIFF container (4000/1)
Więcej informacji na temat działania programu można znaleźć na stronie autora.
20.082009
08:36
Miej więcej 2 dni temu pojawił się nowy Pidgin – 2.6. Ze względu na to, że posiadam teraz 2 komunikatory – osobno dla GG i osobno dla kilku innych sieci, postanowiłem je połączyć w jedno. Właściwie chciałem zrobić już to dawno temu, ale ciągle brakowało mi opcji bycia widocznym tylko dla osób, które mam na swojej liście kontaktów.
Zacząłem więc od przejrzenia change-logów kilku ostatnich wersji Pidgina, żeby się upewnić, czy takiej funkcjonalności nie wprowadzono. Nie doszukałem się jednak tego i postanowiłem sam w tej sprawie coś zrobić. Początkowo dość chaotycznie zacząłem przeglądać kod źródłowy Pidgina, a później skupiłem się tylko na protokole Gadu-Gadu. Jak się przekonałem wystarczyło dodać pewną maskę do zmiennej w funkcji ustawiania statusu.
Mojego patch'a możecie znaleźć tutaj.
Instalacja bardzo prosta – ściągnięcie kodów źródłowych Pidgina 2.6.1, rozpakowanie, a następnie zastosowanie powyższego patch'a poleceniem:
cd ../pidgin-2.6.1
patch -p0 < ../pidgin-2.6.1-status.diff
Następnie wystarczy skompilować program. W moim przypadku zrobiłem to tak:
./configure --prefix=/usr --disable-nm --disable-tcl
make
make install
Niestety patch działa od momentu zmiany statusu, a nie włączenia programu, więc najlepiej ustawić się przy starcie programu jako rozłączony, albo niewidoczny, a następnie sobie zmienić status np. na dostępny.
25.062009
15:26
Launchy to mała aplikacja pozwalająca szybko uruchamiać potrzebne nam w danej chwili programy. Właściwie na każdym komputerze wyposażonym w system Linux taka aplikacja się przydaje. Jak w przypadku innych aplikacji tego typu uruchamiana jest za pomocą wybranego skrótu klawiszowego. Dzięki niej bez potrzeby uruchamiania konsoli, lub przeglądania tysięcy elementów w menu środowiska graficznego można uruchomić wybrany program wpisując część jego nazwy.

Launchy - uruchomienie programu
Aplikacja napisana jest w QT4 i przeznaczona jest dla systemów Windows i Linux. Sam program prezentuje się dość ładnie dzięki paroma udostępnionym przez autora tematami graficznymi. Posiada spore możliwości konfiguracyjne jak na program tego typu, a cała funkcjonalność może być rozszerzona przez załadowanie dodatkowych pluginów. Uruchamiane aplikacje rozpoznawane są za pomocą standardu wprowadzonego przez Xorg, czyli plików z rozszerzeniami .desktop.

Launchy - okno konfiguracji
Program pozwala nam samemu zdefiniować katalogi, w których mają być poszukiwane pliki, oraz dla każdego katalogu określić typy plików jakie mają być dostępne do uruchomienia dla programu. Kolejną ciekawą opcją jest przeszukiwanie ulubionych zakładek z Firefox'a, dzięki czemu możemy w prosty sposób wyszukiwać również w tych zakładkach, a nawet uruchomić wyszukiwarkę (np. Google) z podanym zagadnieniem.
Napotkałem na jeden problem podczas działania – Launchy gubi czasem focusa (głównie po wyświetlaniu listy podpowiedzi). To raczej duży błąd i zastanawiam się, czy to coś w programie, czy u mnie. Mimo wszystko zachęcam do sprawdzenia.