sobota, 19 grudnia 2009

Instalacja Fuppes - co się odwlecze do nie uciecze

Poprzednim razem opisywałem moje próby instalacji Fuppes. Niestety zakończyły się one niepowodzeniem. Nie dawało mi to spokoju i ponownie spróbowałem swoich sił. I udało się. Opiszę teraz jakie czynności wykonałem, aby proces instalacji przebiegł pomyślnie.

Przypomnę, że kodów źródłowych, które były udostępnione z poziomu następującej strony nie udało się skompilować. Problemy były również, gdy zaciągnęliśmy aktualne źródła Fuppes z SVNa - nie można było przejść etapu konfiguracji przed instalacją (brakowało jednego pliku). Rozwiązaniem wszystkich problemów okazało się ściągnięcie jednej z poprzednich rewizji udostępnianych przez SVNa. Ściągnijmy zatem rewizję 648 za pomocą polecenia: svn co -r 648 https://fuppes.svn.sourceforge.net/svnroot/fuppes/trunk fuppes.


Jak widzimy na powyższym zrzucie ekranu udało się ściągnąć odpowiednie kody źródłowe. Przechodzimy zatem do katalogu fuppes i wywołujemy komendę konfiguracyjną: autoreconf -vfi.

Następnie wydajemy polecenie: ./configure --prefix=/usr, którego pozytywny przebieg potwierdzają wpisy jak na poniższym zrzucie.

Kolejnym krokiem jest kompilacja kodów źródłowych przy pomocy make: sudo make

Następnie musimy wydać polecenia: sudo make install oraz sudo ldconfig

I to by było na tyle jeżeli chodzi o instalację Fuppes. Kolejnym razem opiszę jak wygląda konfiguracja aplikacji oraz sprawdzę jak sprawuje się "w warunkach polowych".

Instalacja Fuppes - opis niepowdzenia

Jak pewnie zauważyliście ostatnimi czasy utworzyłem maszynę wirtualną, której nazwa brzmi: Fuppes DLNA Test. Celem ten maszyny jest hostowanie aplikacji zwanej Fuppes.

Fuppes posiada wiele funkcjonalności spośród których mnie najbardziej interesuje możliwość udostępniania multimedialnych zasobów - czyli pełni funkcję serwera DMS (Digital Multimedia Server).

Zacznijmy od instalacji serwera na maszynie wirtualnej specjalnie przygotowanej na tę okazję. Fuppes można ściągnąć z następującej strony. Rozpakowujemy archiwum za pomocą następującej komendy: tar -xvzf fuppes-0.640.tar.gz. Następnie za pomocą komendy ./configure, którą wykonujemy w katalogu do którego rozpakowało się archiwum, uruchamiamy konfigurację aplikacji. No i mamy pierwszy problem... "no acceptable C compiler found in $PATH". Na szczęście z pomocą przychodzą autorzy aplikacji i dla Ubuntu udostępniają polecenie, które teoretycznie zainstaluje wszystkie wymagane zależności: sudo apt-get install build-essential subversion autoconf automake gettext libtool libpcre3-dev libxml2-dev libsqlite3-dev libfaad-dev libmad0-dev libflac-dev libmagickwand-dev libvorbis-dev libtwolame-dev libmpcdec-dev uuid-dev libavformat-dev libavutil-dev libavcodec-dev libmpeg4ip-dev libmp4v2-dev libtag1-dev libexpat1-dev...

Instalacja zajęła trochę czasu, ale się opłacała. Kolejna próba wywołania konfiguracji aplikacji (./configure) zakończyła się sukcesem. Następnie należy skompilować kod wykorzystując komendę make. Niestety, tym razem natrafiamy na o wiele poważniejszy problem - błąd w kodach. Aplikacja z załączonej paczki się nie skompilowała.

Spróbujemy w takim razie zaciągnąć kody wystawione na SVNie. Mam nadzieje, że teraz uda się wszystko bezproblemowo, a paczka, która wystawiona jest na stronie download szybko zostanie zastąpiona poprawioną wersją.

Zatem najpierw musimy ściągnąć najnowsze kody aplikacji. Można to zrobić następującym poleceniem: svn co https://fuppes.svn.sourceforge.net/svnroot/fuppes/trunk fuppes. "Checked out revision 656" potwierdza, że najnowsze kody źródłowe udało się ściągnąć. W podkatalogu fuppes wykonujemy polecenie autoreconf -vfi. No i ponowny zawód :-(. Polecenie zakończyła się niepowodzeniem zwracając status 1. Wydaje mi się, że w tym miejscu dobiega koniec mojej przygody z Fuppes.

Niestety z racji tego, że ani kody źródłowe udostępnione na stronie w dziale Downlaod, ani kody na SVNie się nie budują, nie mogę przeprowadzić dalej instalacji i czasowa zawieszam próby przetestowania tego rozwiązania.

Aktualizacja systemu Ubuntu

Bardzo ważną czynnością jest utrzymywanie systemu w jak najlepszej kondycji. W tym celu należy go jak najczęściej aktualizować. Nie wiem czy zauważyliście, że podczas uruchamiania Ubuntu zaraz po zalogowaniu wyświetla komunikat o poniższej treści:

Ostatnie dwie linijki wskazują wskazują, że dostępne są aktualizacje. W moim przypadku dostępnych jest 36 nowych pakietów, a wśród nich jest aż 14 krytycznych poprawek bezpieczeństwa. Nie ociągajmy się więc i zaktualizujmy system. Tym bardziej, że w dobie kiedy wszystko wykonywane jest automatycznie nie ma łatwiejszej czynności do wykonania. Wystarczy jedna prosta komenda: sudo apt-get upgrade. Zostaniemy poproszeni o potwierdzenie zapisania danych po czym system zostanie zaktualizowany.

Przy ponownym logowaniu nie zobaczymy już komunikatu o dostępnych aktualizacjach, aż do czasu gdy pojawią się nowe wersje.



Problemy z siecią na sklonowanej maszynie

Okazuje się, że klonowanie maszyn nie jest takie bezproblemowe. Gdy dzisiaj chciałem zaktualizować sklonowany system do najnowszej wersji spotkała mnie niemiła niespodzianka. Nie udało się połączyć w żaden sposób z siecią zewnętrzną. Ku mojemu wielkiemu rozczarowaniu poleceni ifconfig zwracało informacje o tym, że uruchomiony jest tylko jeden interfejs sieciowy - tak zwany loopback.

Każda próba zrestartowania urządzeń sieciowych za pomocą komendy: sudo /etc/init.d/networking restart. kończyła się komunikatem: eth0: ERROR while getting interface flags: No such device. Na szczęście od czego ma się wujka Google. Kilka minut później okazało się, że interfejs sieciowy nie zniknął tak po prostu, tylko podczas klonowania, z niewiadomych przyczyn, zmienił nazwę. W moim przypadku na eth1. Podejrzeć tę nazwę można za pomocą wymienianej już komendy ifconfig z przełącznikiem -a (ifconfig -a). Poniżej wynik komendy na jednej ze sklonowanych przeze mnie maszyn (niedziałających poprawnie).

Kiedy wiemy już co się stało trzeba zaaplikować poprawkę. Należy zmienić zawartość pliku /etc/network/interfaces w ten sposób, aby pozmieniane zostały odwołania do nieistniejącego eth0 na eth1. Kiedy już to wykonamy należy jeszcze raz zrestartować urządzenia sieciowe za pomocą komendy: sudo /etc/init.d/networking restart. Po zakończeniu restartu jeszcze raz sprawdzamy, czy interfejs się pojawił za pomocą komendy ifconfig. Wynik działania poniżej:

Pojawił się brakujący interfejs. Maszyna powinna mieć teraz dostęp do internetu. Możemy to sprawdzić wysyłając ping'a np. do www.onet.pl (komenda: ping www.onet.pl).

Niestety zachowanie maszyny podczas klonowania jest dla mnie niezrozumiałe. Nie udało mi się wyjaśnić tego i wyżej opisaną czynność będziemy musieli wykonywać dla każdej sklonowanej maszyny.

niedziela, 13 grudnia 2009

Klonowanie maszyn wirtualnych w VirtualBox

Jeżeli śledziliście ostatnie wpisy dotyczące maszyn wirtualnych to jesteście w stanie utworzyć VMa z wykorzystaniem VirtualBoxa. Jesteście również w stanie zainstalować na maszynie dystrybucję linuxa - Ubuntu. Oczywiście są to pożyteczne umiejętności. Jednak, jeżeli zamierzacie wykorzystywać wiele maszyn do różnych celów to dlaczego mielibyście to robić za każdym razem? Jest to czas stracony. Jak wiadomo czas to pieniądz, więc trzeba go oszczędzać.

Niestety VirtualBox nie udostępnił jak dotąd funkcji klonowania, która w łatwy i przyjemny sposób wykonałaby za nas czarną robotę. Trzeba poradzić sobie bez tego. Komplikuje to trochę sprawę, lecz jest na pewno efektywniejsze od ponownego tworzenia maszyny, konfigurowania jej i instalacji dystrybucji linuxa. Po pierwszy należy zrozumieć jakie elementy wchodzą w skład maszyny wirtualnej w VirtualBoxie.

Pierwszą rzeczą jest sama konfiguracja zapisana w formacie XML. Można ją obejrzeć zaglądając do pliku: C:\Documents and Settings\\.VirtualBox\Machines\\.xml. Wszystko co jest tam zapisane można w łatwy sposób "wyklikać" w samej aplikacji. Dlatego lepiej się nad tym nie rozwodzić.

Drugą, nie mniej ważną rzeczą jest wirtualny dysk, na którym maszyny wykonuje wszystkie operacje zapisywania i odczytywania danych. Każda maszyna wirtualna musi mieć przypisany co najmniej jeden dysk. Jednak definicje samych dysków znajdują się w globalnej konfiguracji VirtualBoxa. Definicje te są następnie wykorzystywane w konfiguracji samej maszyny. Jak wygląda definicja globalna? Jest to odwołanie do pliku na dysku utworzonego w odpowiednim formacie. Plik ten stanowi 'wirtualne' środowisko pracy VM. Same 'dyski' znajdują się w katalogu: C:\Documents and Settings\\.VirtualBox\HardDisks\.

Ostatnim elementem ważnym z punktu widzenia klonowania są migawki. Zawierają one zrzut stanu systemu z momentu, kiedy taka migawka została zrobiona. Takie migawki umożliwiają przywrócenie stanu maszyny wirtualnej z danego czasu. W przypadku klonowania maszyn z wykorzystaniem migawki, należy zmergować taką migawkę do postaci pliku zawierającego obraz wirtualnego dysku VirtualBoxa. W tym momencie nie będziemy korzystać z takiej możliwości, wiec pominę opis tego jak to wykonać. Skoncentrujemy się na kopiowaniu maszyny, której obecny stan zapisany jest w wirtualnym HDD.

Teoretycznie klonowanie dysku jest bardzo proste, ponieważ ogranicza się do wywołania jednego polecenia z poziomu linii komend konsoli, które udostępnia VirtualBox i podania namiaru na dysk źródłowy i docelowy. Samo polecenie wygląda następująco: "C:\Program Files\Sun\VirtualBox\VBoxManage.exe" clonevdi "DLNA Test.vdi" "template.vdi"
Sama operacja może potrwać krócej lub dłużej w zależności od wielkości pliku z dyskiem, który ma zostać sklonowany. Efekt powinien być taki jak na poniższym zrzucie.

Po wykonaniu tej operacji należy z poziomu aplikacji VirtualBox dodać nowo utworzony plik w Menedżerze nośników wirtualnych wybierając opcję: Plik->Menedżer nośnikó wirtualnych...

W okienku, które się pojawi należy wybrać opcję: Dodaj i wybrać plik z obrazem dysku, który został wcześniej utworzony i potwierdzić wybór.

Ostatnim korkiem, którego niestety nie ominiemy jest utworzenie nowej maszyny wirtualnej. Maszynę należy utworzyć zgodnie z opisem zamieszczonym w następującym wpisie. Gdy dojdziemy do pytania o wybór dysku wirtualnego, to należy zaznaczyć opcję: Użyj istniejącego dysku twardego i następnie wybrać odpowiedni dysk.

Po potwierdzeniu wszystkich zmian w głównym oknie aplikacji VirtualBox powinna się pojawić nowa maszyna wirtualną, którą proponuję uruchomić celem przetestowania. Oczywiście maszyna będzie zachowywać się jak pierwowzór, który sklonowaliśmy.


piątek, 11 grudnia 2009

Interfejs sieciowy maszyny wirtualnej widoczny w sieci lokalnej

Nie raz zdarzają się sytuacje w których chcemy, aby maszyna wirtualna i zainstalowany na niej system operacyjny były widoczne w sieci lokalnej. Ja chciałbym udostępnić (do celów testowych) serwer DMS uruchomiony na Ubuntu zainstalowanym na VM.

Niestety podstawowa konfiguracja maszyny wirtualnej zaraz po jej utworzenia za pomocą VirtualBox zakłada, że system gościa pozostaje ukryty za NATem. Na szczęście VB pozwala w łatwy sposób zmienić ten stan rzeczy. Przestawimy sposób działania "wirtualnej karty sieciowe" na tryb adaptera rzeczywistej karty sieciowej. Dzięki temu zabiegowi jeden fizyczny port karty sieciowej (w moim wypadku karta Wifi) będzie obsługiwał dwa logiczne adresy IP w sieci lokalnej.

Jakie czynności należy wykonać, aby osiągnąć wyżej opisany efekt? Należy wyłączyć maszynę wirtualną i następnie wybrać opcję Ustawienia i przejść na zakładkę Sieć. Poniższej zaprezentowane są domyślne ustawienia maszyny zaraz po jej utworzeniu.

Na widocznym ekranie należy zmienić opcję "Podłączony do" z "NAT" na "Bridged Adapter" i w opcji Nazwa wybrać interfejs sieciowy, któremu zostanie przypisany dodatkowy, logiczny adres IP i przez który będzie odbywać się komunikacja pomiędzy siecią lokalną, a maszyną wirtualną. Na poniższym zrzucie widać odpowiednie ustawienia. Wybór potwierdzamy przyciskiem OK.

Warto w tym miejscu zwrócić uwagę na to, że takiej wirtualnej karcie sieciowej można nadać adres MAC Robi się to wybierając opcję trybika położonego obok opcji Podłączony do.

W mojej sieci lokalnej znajduje się AP (i ruter jednocześnie), który odpowiada za przydzielanie adresów IP poszczególnym urządzeniom (usługa DHCP). Przydział adresu IP następuje na podstawie listy adresów MAC, które mogą zostać włączone do sieci. W przypadku gdyby Czytelnik korzystał z podobnego rozwiązania, należy pamiętać, aby dołączyć do tej listy adres MAC "wirtualnej" karty sieciowej. W przeciwnym razie możemy czuć się niemile zaskoczeni tym, że w samej maszynie wirtualnej nie będzie działać sieć.

Na zakończenie jeszcze jeden zrzut ekranu, który prezentuje poprawną konfigurację wirtualnej karty sieciowej w mojej sieci lokalnej.


VirtualBox i rozdzielczość konsoli

Jedną z bardziej denerwujących mnie rzeczy, które występują zaraz po zainstalowaniu Ubuntu na maszynie wirtualnej jest niewielka rozdzielczość, którą oferuje konsola. Zdaje się, że są to standardowe rozmiary konsoli: 25 linii na 80 kolumn. Oglądanie tego małego okienka na 17" monitorze LCD nie jest najlepszym doznaniem. Spróbujmy zatem zmienić rozmiar konsoli, którą raczy nas Ubuntu odpalone z maszyny wirtualnej.

Aby wykonać powyższą czynność, trzeba uruchomić VM z Ubuntu, zalogować się i następnie odnaleźć plik: /boot/grub/grub.cfg. Rozpocząć edycję pliku (np. za pomocą komendy sudo pico grub.cfg). W pliku tym należy odnaleźć konfigurację, która odpowiada za uruchomienia systemu podczas startu maszyny. Wpis wyglądać może mniej więcej w następujący sposób: linux /vmlinuz-2.6.31-14-generic.... Należy dodać na końcu tej linijki następujący zapis: vga=0x305 jeżeli chcemy, aby konsola otwierała się w pełnej rozdzielczości: 1024x768. Zapisać plik: CTRL+O, Enter i wyjść z trybu edycji CTRL+X. Po zrestartowaniu maszyny (sudo reboot) konsola otworzy się w wybranej rozdzielczości.

Na pewno nie ujdzie uwagi pojawienie się komunikatu o tym, że sposób przeze mnie opisany jest niepolecany. Jednak tego, który w zamian powinno się używać nie udało się mi uruchomić. Efekt nowego podejścia sprowadza się do czarnego ekranu po załadowaniu systemu, dlatego dopóki nie zostanie wyjaśnione dlaczego tak się dzieje proponuję pozostać przy starym sposobie.
 

czwartek, 10 grudnia 2009

Jak zainstalować Linuxa na wirtualne maszynie na przykłądzie VirtualBox i Ubuntu

W jednym z poprzednich odcinków opisałem w jaki sposób zainstalować VirtualBox oraz jak utworzyć maszynę wirtualną. Dzisiaj chciałbym przedstawić jak zainstalować Linuxa, a konkretnie dystrybucję Ubuntu (można ją ściągnąć z następujące strony), na utworzonym wcześniej środowisku.

Przypomnę jak wygląda okno VirtualBox z utworzoną maszyną wirtualną.

Zanim uruchomimy maszynę musimy zamontować obraz ściągniętej dystrybucji tak, aby była ona widoczna. Należy wybrać w tym celu opcję Plik, następnie Menedżer nośników wirtualnych i przejść na zakładkę Obrazy CD/DVD.

Lista dostępnych obrazów powinna być pusta. My dodamy nowy element z naszą dystrybucją. Klikamy opcję Dodaj i w okienku dialogowym, które się pojawi wyszukujemy obraz z Ubuntu, a następnie potwierdzamy wybór przyciskiem Otwórz. Na liście dostępny obrazów powinien pojawić się nowy wpis - tak jak na poniższym zrzucie ekranu.

Zatwierdzamy wszystkie wprowadzane zmiany przyciskiem OK.

W ten sposób VirtualBox symulować będzie zawartość napędu optycznego w postaci załączonego obrazu z dystrybucją Linuxa. Należy jeszcze konkretnej maszynie wskazać, że przy uruchamianiu w napędzie optycznym ma być widoczna nowa zawartość. W tym celu zaznaczamy na liście dostępnych maszyn wirtualnych, tą na której będziemy instalować Ubuntu. Następnie wybieramy opcję Ustawienia i na widocznej liście wybieramy element CD/DVD-ROM. Na ekranie, który się nam pokaże zaznaczamy checkbox'a Zamontuj napęd CD/DVD i po uaktywnieniu się opcji Plik obrazu ISO zaznaczamy ją. Jeżeli wprowadziliśmy wcześniej tylko jeden obraz to automatycznie powinien on zostać wybrany na liście, jeżeli jest ich kilka to trzeba wybrać odpowiedni.

Po zatwierdzeniu wprowadzonych zmian przyciskiem OK maszyna jest gotowa do uruchomienia. Nie ma zatem co zwlekać - wybieramy maszynę i odpalamy ją przyciskiem Uruchom. Z racji tego, że najpierw następuje próba załadowania zawartości symulowanego napęd z obrazem Ubuntu odpali się aplikacja instalacyjna, która pozwoli nam zainstalować system operacyjny. Poniższy zrzut przedstawia odpalony instalator z prośbą o wybranie języka.

Wybieramy Polski (chyba, że wolimy inny ;-) i zatwierdzamy Enterem. Zostaniem następnie poproszeni o wybranie operacji, którą chcemy wykonać - wybieramy Zainstaluj Ubuntu Serwer. Uruchomi się teraz właściwy instalator OS, który zadawać będzie nam pytania odnośnie konfiguracji systemu.

Jeżeli w pewnym momencie zniknie Wam kursor myszki i nie będziecie wiedzieć jak go odzyskać to nie panikujcie. VirtualBox obsługuje magiczny skrót, który pozwoli powrócić do systemu hosta - jest to prawy CTRL+HOME.

Zaczyna się prosto od pytania: czy chcemy zezwolić instalatorowi na detekcję klawiatury? Wybieramy opcję nie i następnie na zaprezentowanej liście wybieramy Poland i ponownie Poland na kolejnym ekranie. Po krótkiej chwili podczas której wyszukiwane są komponenty składowe maszyny pojawia się komunikat z prośbą o podanie nazwy komputera (w naszym wypadku maszyny wirtualnej, ale sic! instalator o tym nie wie ;-). Wprowadzamy nazwę, zatwierdzamy ją i ponownie czekamy, aż pojawi się kolejne okienko.

Najwyższy czas przydzielić przestrzeń dyskową. Wybieramy zaznaczoną opcję. Warto w tym miejscu zauważyć jak duży dysk wykrył instalator - oczywiście dysk ma tyle GB ile przydzieliliśmy maszynie wirtualnej podczas jest konfigurowania. W moim wypadku jest to 8,6 GB. Potwierdzamy wybór dysku i na następnym ekranie również zatwierdzamy, aby instalator automatycznie wykonał za nas czarną robotę. Przy kolejnych dwóch okienkach również zrzucamy odpowiedzialność na instalator wybierając Tak. Nastąpi teraz instalacja na utworzonych partycjach systemu.

W tym miejscu chciałem zaznaczyć ogromny plus wirtualizacji. Zawsze kiedy chciałem zainstalować dowolną dystrybucję linuxa obok windowsa obawiałem się tego czy czasem czegoś nie zepsuję. Tym razem wcale nie muszę się niczym przejmować, ponieważ w najgorszym przypadku usunę maszynę i cały proces rozpocznę raz jeszcze.


Po zakończeniu wgrywania komponentów systemu operacyjnego pojawi się okienko z prośbą o podanie nazwy użytkownik i haseł. Zapytani zostaniem również o to czy System ma automatycznie szyfrować i deszyfrować katalog domowy użytkownika przy odpowiednim wylogowywaniu się i zalogowaniu się. Nic nie stoi na przeszkodzie, aby tak robił dlatego zgadzamy się na propozycję.

W kolejnym oknie zostaniem poproszeni o podanie konfiguracji serwera proxy http jeżeli z takiego korzystamy - ja nie korzystam, więc pozostawiam to pole puste. Następnie pytanie o aktualizacje - wybór moim zdaniem jest jeden: Instaluj automatycznie aktualizacje bezpieczeństwa.

Teraz czas na wybór serwisów, które serwer będzie oferował. Ja ograniczę się w tej chwili wyłącznie do OpenSSH server. Nie zamierzam na dzień dzisiejszy korzystać z pozostałych usług. Natomiast te które zamierzam zainstalować będę dogrywał w późniejszym czasie.

No i to by było na tyle, jeżeli chodzi o sam proces instalacji. Instalator poprosi nas o wyciągnięcie płyty instalacyjnej ;-). Nie musimy tego jednak wykonywać w jakiś sposób po automatycznym restarcie maszyny włączył się zainstalowany Linux. To co nam pozostaje to zalogować się i cieszyć z Ubuntu.


Na koniec drobna rada: Jak wyłączyć maszynę wirtualną z uruchomionym linuxem? Elegancki sposób to wywołać polecenie sudo shutdown -h now.  Dzięki temu nastąpi poprawne zamknięcie wszystkich procesów linuxowych i okienko z maszyną samo się zamknie.

środa, 9 grudnia 2009

Freenet c.d.

W poprzednim poście zaznaczyłem, że nie udało mi się uruchomić wyszukiwania w sieci Freenet. Problemy wiązały się z tym, że nie miałem najnowszej wersji Javy. Pomimo tego, że ją jednak zainstalowałem i wykonałem kilka innych, dodatkowych czynności, opcja wyszukiwania nie była dostępna.

Dzisiaj postanowiłem upewnić się, że rzeczywiście związane jest to z Javą i po uruchomieniu aplikacji okazało się... że wszystko działa. Trudno mi to wytłumaczyć. Podejrzewam, że wymagany był restart komputera, ponieważ sama aplikacja działa jako serwis Windowsa. W każdym razie teraz jest już OK.

Napiszę w takim razie jakie dodatkowe czynności wykonałem, oprócz instalacji najnowszej Javy w pierwszej kolejności, że wszystko teraz ruszyło. Otóż wymusiłem, aby Windows w pierwszej kolejności uruchamiał aplikację javaw.exe zamieszczoną w katalogu z najnowszą Javą. Jak można to zrobić? Dodając do zmiennych systemowych zmienną JAVA_HOME wskazującą na główny katalog z Javą i następnie dodają na samym początku zmiennej PATH (!bardzo ważne jest, aby było to na samym początku tej zmiennej!) %JAVA_HOME%\bin;. Jak dodać zmienną systemową bądź ją zmienić? Trzeba otworzyć odpowiednie okienko: Start-> Ustawienia -> Panel Sterowania -> System -> Zaawansowane (zakładka) -> Zmienne środowiskowe (przycisk) -> Zmienne systemowe (okienko). Po wprowadzeniu tych zmian trzeba zrestartować kompa.

Przypomniałem sobie jeszcze jeden szczegół, który może być ważny w momencie podłączania się do samej sieci. Jeżeli podczas konfiguracji ustawiony zostanie zbyt duży poziom bezpieczeństwa i anonimowości to Freenet nie połączy się z sąsiednimi węzłami. Przy takich ustawieniach połączenia są nawiązywane tylko z Przyjaciółmi, a tych możemy nie mieć po instalacji aplikacji. Rozwiązaniem tego problemu jest obniżenie poziomu bezpieczeństwa. Można to wykonać klikając w pierwszy odnośnik po Security Levels, na głównej belce aplikacji Freenet. Następnie wystarczy obniżyć poziom (Protection against a stranger attacking you over the Internet) do Normal. Po zaakceptowaniu zmian (przycisk Uaktywnij na samy dole strony) trzeba chwilę odczekać i po chwili można cieszyć się możliwością korzystania z dobrodziejstw sieci Freenet.

poniedziałek, 7 grudnia 2009

Freenet w Rzeczpospolitej

Rzeczpospolita zaskakuje mnie coraz bardziej. W dzisiejszym wydaniu opisują jedną z sieci p2p, która umożliwia wymianę danych praktycznie poza wszelkimi kontrolami.

Freenet, bo o tej sieci mowa, wymaga od użytkownika udostępnienia przestrzeni dyskowej oraz przepustowości łącza. Na dysku w zaszyfrowanej postaci przechowywane są zasoby (niekoniecznie te które użytkownik ściągnął). Z racji tego, że wymiana nie odbywa się bezpośrednio pomiędzy maszyną z której wyszło żądanie, a maszyną która przechowuje żądane dane (wymiana pośrednia przez węzły pośredniczące) na dysku mogą znaleźć się dane, które były przekazywane do innych węzłów. Między innymi dlatego wspomniałem o udostępnieniu przepustowości łącza. Dzięki takim założeniom zagwarantowana zostanie anonimowość, powszechna (i szybka) dostępność wszystkich materiałów, które są często pobierane oraz brak ponoszenia ewentualnej odpowiedzialności za to, że na naszym dysku w postaci zaszyfrowanej przechowywane są nielegalne materiały.

Jak zwykle, wszystko tylko w teorii wygląda tak wspaniale. Rozwiązanie ma swoje wady. Przede wszystkim podstawowym minusem jest mała wydajność związana z pracochłonnym szyfrowaniem danych oraz z brakiem bezpośredniego pobierania udostępnianych danych. Przekazywanie danych pomiędzy węzłami pośredniczącymi odbija się negatywnie najbardziej na szybkości działania całej sieci. Ściąganie prostej strony potrafi trwać nawet kilkanaście sekund, nie mówiąc już o dużych dokumentach.

Niestety instalacja i konfiguracja samego narzędzia może początkującej osobie nastręczać trudności. Do tej pory myślałem, że będzie to coś w rodzaju Plug & Play jednak rzeczywistość zweryfikowała mój optymizm. Męczę się już od 1h i nadal na ekranie widzę, że nie mogę uzyskać połączenie...

... w końcu udało się. Po udzieleniu odpowiedzi na pytania (niestety wszystkie po angielsku) o poziomie bezpieczeństwa i anonimowości, które program ma zapewniać i zainstalowaniu najnowszej wersji Javy udało mi się podłączyć do kilku węzłów sąsiedzkich.

Dzięki stronom, które indeksują odnośniki do dokumentów przechowywanych w sieci można łatwo dostać się do zasobów. Niestety ich jakość nie jest zbyt powalająca. Porównanie zawartości stron i zasobów z ogólnodostępną siecią WWW wypada ogromnie na niekorzyść Freenet.

Niestety nie udało mi się rozwiązać całkowicie problemów z Javą i pomimo tego, że mam zainstalowaną najnowszą wersję program nie chce umożliwić mi skorzystanie z wyszukiwarki - korzystać mogę tylko ze stron indeksowych.

Podsumowując - uważam, że sieć Freenet jest dopiero w początkowej fazie rozwoju. Być może sam protokół jest już doprecyzowany, ale wygląd udostępnianych stron nie jest przyciągający. Natomiast same treści są już naprawdę "wolne" - zarówno w pozytywnym znaczeniu jak i negatywnym. Treści o wierze oraz religii przeplatają się z pornografią dziecięcą, poradnikami o truciznach i materiałach wybuchowych.

Myślę, że z czasem coraz więcej treści, które zostaną uznane za nielegalne, a ich publikacja grozić będzie więzieniem, przeniesie się do sieci Freenet. Tak jest z pornografią i wszelkimi poradnikami nawołującymi do zabijania. Wraz z wprowadzaniem coraz restrykcyjnych praw dotyczących np. ściągania plików objętych prawami autorskimi oraz rozwojem narzędziami kontroli w ogólnodostępnej sieci i te zasoby znajdą swoje miejsce we Freenet'cie. A zaraz z tymi treściami podążą spragnieni ich użytkownicy.

Przypuszczam, że najlepsze czasy aplikacji działających na zasadzie Freenet'u są jeszcze przed nimi. Wraz z nieuchronnym rozrostem kontroli bliżej nieokreślonego "państwa" nad swoimi obywatelami liczba użytkowników takich sieci będzie wzrastać, a to pociągnie za sobą coraz szybszy rozwój tego medium dostępu do informacji - nielegalnej informacji.

Sama idea jak najbardziej mi się podoba. Freenet daje gwarancje publikacji treści bez obawy o to, że publicystę i odbiorcę spotkają bliżej nieokreślone represje. Kiedyś uważano, że takim medium będzie Internet.

Ten miecz jest jednak obosieczny. Mówi się, że ponad połowa treści, które przesyłana jest w Internecie to pornografia. Myślę, że podobnie jest ze siecią Freenet. Twórca dał narzędzie, które może być wykorzystane do "czynienia dobra". Lecz znalazły się osoby wykorzystujące je do realizacji swoich niecnych celów.

niedziela, 6 grudnia 2009

Witualizacja z wykorzystaniem VirtualBox

W poprzednim wpisie opisałem w jakim celu chciałbym korzystać z wirtualizacji. Dzisiaj zamierzam przedstawić jak przeprowadzić konfigurację pojedynczej maszyny wirtualnej. Maszyna ta będzie służyć jako punkt startowy na który zostanie zainstalowany Linux. Tak przygotowaną wersję zamierzam następnie klonować i wykorzystywać w innych celach. Jest to bardzo wygodne, ponieważ w każdej chwili mogę odtworzyć początkowy stan urządzenia i wykorzystywać go do innych zastosowań.

Przygodę z wirtualizacją proponuję rozpocząć od ściągnięcia binariów VirtualBox z następującej strony. Następujący adres zawiera odnośnik do wersji Windowsowej. Po ściągnięciu oraz zainstalowaniu można zobaczyć jak działa aplikacja.

Na poniższym rysunku przedstawiony jest główny widok z listą wirutalnych maszyn, które możemy uruchomić.

Lista jest pusta, ponieważ nie zdefiniowaliśmy jeszcze żadnej maszyny. Dodajmy zatem pierwszą. Można to wykonać klikając opcję "Nowa". Zostanie zaprezentowane okno z Asystentem, który pomoże przeprowadzić proces tworzenie nowej wirtualnej maszyny.
Na kolejnym ekranie (po naciśnięciu przycisku "Dalej") definiujemy nazwę maszyny wirtualnej oraz określamy jaki system operacyjny dana maszyn będzie wykorzystywać. Z racji tego, że przygotowuję środowisko do testów rozwiązań DMS oraz tego, że zakładam wykorzystanie Linuxa, a konkretnie Ubuntu, wybrałem ustawienia widoczne na poniższym zrzucie.
Po zatwierdzeniu wyboru przechodzimy do określenia zasobów, które będą wykorzystywane przez maszynę, a konkretnie wielkości pamięci RAM do której będzie miała ona dostęp. Niestety nie wiem jakie wymagania będą miały serwery zapewniające dostęp klientom DLNA do zasobów multimedialnych. Obecnie, na maszynie, która będzie hostować maszyny wirtualne zainstalowane jest 3GB fizycznej pamięci RAM. Windowsowi pozostawię 2GB na jego zabawki, natomiast pozostały 1 GB przeznaczony zostanie do użytku maszyny wirtualnej.
Pozostaje nam jeszcze określenie miejsca na dysku gdzie będziemy mogli przechowywać dane. Mamy wybór: możemy wykorzystać istniejący wolumen (plik *.vdi) lub utworzyć nowy. Wybieramy tą drugą opcję.
W przypadku tej opcji uruchomiony zostanie Asystent nowego dysku wirtualnego.
Po przejściu dalej zostaniemy poproszeni o wskazanie czy obraz dysku, który ma zostać utworzony będzie miał stały rozmiar, czy jego rozmiar może ulegać dynamicznemu rozszerzeniu (aż do z góry ustalonego rozmiaru). Wybieramy tę drugą opcję - dynamicznie rozszerzany obraz.
Następnie wpisujemy ścieżkę obrazu dysku oraz jego maksymalny rozmiar.
Po kliknięciu przycisku "Dalej" pojawia się podsumowanie tworzenia wirtualnego dysku (ale nie maszyny). Zatwierdziwszy wprowadzone zmiany zostaniemy skierowani do podsumowania Tworzenia nowej maszyny wirtualnej.
Po zatwierdzeniu ostatnich zmian możemy zobaczyć nowy wpis na liście dostępnych maszyn wirtualnych, jak na poniższym zrzucie.
Przyciskiem "Uruchom" możemy spróbować uruchomić dopiero co utworzoną maszynę wirtualną. Jednak z racji tego, że nie mamy zainstalowanego żadnego systemu operacyjnego wynik uruchomienia powinien być taki jak na poniższym ekranie.
W kolejnym "odcinku" zaprezentuję w jaki sposób zainstalować dystrybucję Ubuntu na maszynie wirtualnej którą utworzyliśmy.

piątek, 4 grudnia 2009

Linux i wirtualizacja

Niektórzy usilnie starają się mi wmówić, że Linux to najlepszy system operacyjny jaki kiedykolwiek powstał. Osoby te nie wyobrażają sobie swojego PC'ta lub laptopa na którym miałby być zainstalowany inny OS, a tym co mają np. Windowsa starają się wszelkimi sposobami dokuczyć. Moim zdaniem są to przesadzone wyobrażenia.

Oczywiście, na pewno nie można odmówić, temu że niektóre dystrybucje są niezwykle dopracowane i znajdują zastosowanie jako wydajne OSy dla serwerów. Jeżeli jednak chodzi o zastosowania domowe, dla zwykłych użytkowników, to ten OS jest zdecydowanie zbyt trudny w obsłudze.

Bezsprzeczną przewagą Windowsa jest to, że nie ma większych problemów z jego instalacją i praktycznie zaraz po zainstalowaniu wszystko działa. Z Linuxem już tak niestety nie jest. Kolejną przewagą Windowsa jest przyzwyczajenie. Od blisko 15-lat Microsoft przyzwyczajał ludzi do wyglądu swoich Okienek. Przez ten czas koncepcja obsługi tego systemu praktycznie się nie zmieniła. Układ oraz polecenia, które były dostępne w Windows 95 podlegały niewielkiej i stopniowej ewolucji dzięki czemu użytkownik praktycznie zawsze, szybko odnajdywał się w kolejnych wersjach OSa.

Linux, którego instalacja nie jest już tak banalna, i którego Okienka przeważnie różnią się od tego do czego przyzwyczaił się użytkownik odstrasza zwykłych ludzi od siebie. Moim zdaniem dlatego nigdy nie trafi on pod przysłowiową strzechę i pozostanie systemem dla zapaleńców oraz dla specjalnych, serwerowych zastosowań.

Dosyć jednak o porównaniu tych dwóch systemów. Mam wrażenie, że i tak nie przekonałbym prawdziwego fana Linuxa wykorzystując moje argumenty. Wróćmy może do tego o czym chciałem pisać.

Na potrzeby projektu DLNA chciałbym utworzyć mały serwer, który zapewniałby dostęp do zasobów multimedialnych. Z racji tego, że rozwiązanie ma być darmowe i oprócz podstawowego zastosowania ma mieć możliwość zapewnienia w przyszłości innych usług planuję wykorzystać Linuxa. Ponieważ nie znam się za bardzo na dystrybucjach tego OSa, a wiem iż dobrymi opiniami cieszy się Ubuntu, mój wybór padł na tę wersję. Z oficjalnej strony ściągnąłem 32-bitową wersję serwerową.

Zanim jednak złożę taki serwer chciałbym przetestować wybrane wcześniej rozwiązania DMS. Aby przeprowadzić takie testy potrzebuję zainstalować Linuxa na maszynie, którą obecnie posiadam. W tym miejscu wkracza bardzo potężna technologia zwana wirtualizacją. Nie lubię uciekać z przyjemnych, Windowsowych okienek i przełączać się pomiędzy jednym i drugim systemem. Dlatego potrzebuję narzędzia, które pozwoli mi zainstalować Ubuntu i kontrolować całą obsługę tego systemu z poziomu Windows. Do tego zadania idealnie nadaje się aplikacja VirtualBox. Zapewnia ona wirtualne środowisko działania wewnątrz systemu hosta. W ten sposób będę mógł mieć jednocześnie odpalony system Windows i wewnątrz jego działającą, dostępną w każdej chwili dystrybucję Linuxa. Takie rozwiązanie jest bardzo satysfakcjonując na poziomie testów. Dopóki nie zdecyduję się na implementację konkretnego rozwiązania pozwoli mi ono sprawdzić te elementy, które mnie interesują bez niepotrzebnego zaśmiecania moich ulubionych Okienek.

W kolejnych postach postaram się przybliżyć narzędzie VirtualBox i zgłębić tajniki instalacji serwerowej wersji Ubuntu na utworzonej maszynie wirtualnej.

RP o lokatach

Przed chwila zauważyłem, że na serwisie internetowym Rzeczpospolitej pojawił się artykuł omawiający 6-ścio miesięczne lokaty terminowe. Gorąco polecam zapoznanie się z tematem tym osobom, które preferują pewne i bezpieczne inwestowanie.

Artykuł wskazuje, że najwyższe oprocentowanie można uzyskać deponując pieniądze na lokatach z tak zwaną dzienną kapitalizacją odsetek. Mechanizm zastosowany w tego typu lokatach pozwala uniknąć opodatkowania zysków podatkiem Belki. Pewnym ograniczeniem jest to, że zazwyczaj kwota, którą się deponuje nie może przekroczyć określonego limitu. W przypadku najlepszej lokaty z zestawienia: Lokata Meritum Zysku maksymalna kwota wynosie 10000 zł. Nie oznacza to wcale, że jesteśmy ograniczeni do takiej kwoty, ponieważ można otworzyć wiele takich lokat :-).

Z drugiej strony od dłuższego czasu słyszę pogłoski, że Rada Polityki Pieniężnej rozpocznie proces podnoszenia stóp procentowych. Taki krok zazwyczaj wpływa na to, że oprocentowanie lokat zostanie jeszcze podniesione. Nie wiadomo jednak kiedy po raz pierwszy podwyżka zostanie ogłoszona - tak jak wspomniałem są to tylko plotki. Dlatego proponuję nie deponować wszystkich pieniędzy tylko poczekać z częścią na 2-3 najbliższe posiedzenia Rady.

środa, 2 grudnia 2009

DMS - przegląd rozwiązań programowych

Najważniejszym komponentem projektu DLNA jest Digital Media Server - serwer, który będzie udostępniał pozostałym odbiorcom zasoby multimedialne. Koncepcja projektu zakłada, że wykorzystane zostanie darmowe rozwiązanie do realizacji tej funkcjonalności.

Podczas poszukiwania odpowiedzi na pytanie jakie aplikacje spełniają moje wymagania natrafiłem na stronę: "How to choose DLNA Media Server..." na której zebrano listę komercyjnych i darmowych rozwiązań dla różnych systemów operacyjnych. Robert Green zobowiązał się do aktualizowania listy oprogramowania i z ostatnich wpisów wynika, że ostatnio wykonywał to w czerwcu tego roku. Myślę, że można uznawać ten spis jako dobry punkt zaczepny do wyboru DMS'owego rozwiązania.

Z racji tego, że całe rozwiązanie ma być darmowe oraz w miarę możliwości otwarte z listy eliminujemy programy komercyjne oraz te, które wymagają do swojego działania systemu innego niż Linux. Taka eliminacja redukuje wybór z 24 programów do 9. Na placu pozostały: Cidero Internet Radio Station, Cyber Media Gate, Fuppes, GMediaServer, MediaTomb, MiniDLNA, MythTV, PS3 Media Server i uShare.

Kolejnym kryterium wyboru jest to, aby serwer udostępniał zasoby każdego typu - zarówno muzykę, fotografie jak i filmy. W tym przypadku wszystkie programy spełniały wymagane kryterium.

Jednym z ważnych parametrów podczas wyboru oprogramowania DMS jest transkodowanie. Funkcjonalność ta zapewnia konwertowanie multimedialnego zasobu do postaci, którą aplikacja odgrywająca będzie potrafiła odtworzyć. Z perspektywy zwykłego użytkownika jest to bardzo ważne, aby wszystko działo się automatycznie, aby nie musiał się on wgryzać w specyfikacje kodeków, które obsługuje urządzenie odbiorcze. Oczekuję, że DMS automatycznie wykona konwersję do postaci z którą odtwarzacz nie będzie miał problemów. Takiemu wymaganiu nie sprostały: Cider Internet Radio Station, Cyber Media Gate, GMediaServer oraz uShare. Pewien problem stanowi MiniDLNA. Nigdzie nie znalazłem deklaracji tego czy to oprogramowanie posiada zaimplementowaną funkcjonalność transkodowania. Jednak z pobieżnego czytania kilku wpisów z innych blogów (np. tego) wynika, że nie potrafi sobie poradzić z takim zadaniem, dlatego uznaję, że nie kwalifikuje się ono do dalszego rozpatrywania.

Na placu boju pozostają 4 aplikacje: Fuppes, MediaTomb, MythTV oraz PS3 Media Server.

W kolejnych wpisach spróbuję przybliżyć poszczególne rozwiązania i sprawdzić jak radzą sobie one w komunikacji ze standardowo instalowanymi aplikacjami laptopa Sony VAIO.

Mój Start-Up

Blisko 1,5 roku temu założyłem jednoosobową działalność gospodarczą. Jest to bardzo powszechne rozwiązanie stosowane w branży w której pracuję. Pozwala zoptymalizować dochody dzięki możliwości wliczenia w koszty różnych, sensownych wydatków (np. nowy sprzęt komputerowy, samochód, paliwo, koszty księgowych, telefonów) i nie płacić sporo na bezsensowne utrzymanie nieefektywnego ZUSu. Oczywiście ma to również swoje minusy: większa odpowiedzialność finansowa, brak urlopów, minimalna emerytura po przekroczeniu 65 lat (ale na to jest rada - trzeba odkładać miesięcznie niewielkie kwoty a na pewno uzyska się większy kapitał niż zapewni ZUS ;-).

Od samego początku zadaję sobie pytanie: dlaczego mam ograniczać się wyłącznie do jednego klienta z którym obecnie współpracuje? Zapewnia mi to pewną stabilność, ale jest niewystarczające. Dlatego cały czas zastanawiałem się nad tym czy nie da się "sprzedać" moich umiejętności dodatkowo innej firmie. Rozwiązanie spłynęło niespodziewanie. Otóż zauważyłem, że jeden z klientów ma problemy w pewnej dziedzinie. Zacząłem się zastanawiać czy nie udałoby się za pomocą jakiejś aplikacji ich rozwiązać. W między czasie okazało się, że analogiczny problem ma inny klient z tej samej branży. Cóż za szczęśliwy zbieg okoliczności. Przekonało mnie to do bardziej wytężonej pracy.

Koncepcja rozwiązania z czasem coraz bardziej się krystalizowała, a ostatnio udało mi się zwerbować kolegę ze studiów, który zaoferował pomoc w realizacji projektu.

Obecnie nasze plany obejmują zaoferowanie rozwiązania obu firmom, które naprowadziły nas na pomysł. Dodatkowo chcemy uruchomić serwis internetowy oferujący usługę większej grupie użytkowników. Witryna ma być naszą wizytówką, która rozreklamuje naszą aplikację.

Mam nadzieję, że nasze działania przyniosą pozytywny, finansowy skutek. W tej chwili poświęcamy nasz czas, a w przyszłym roku również i nasze pieniądze. To jest ryzyko, które jesteśmy gotowi ponieść, bo inaczej nigdy nie dowiedzielibyśmy się czy się nam uda czy nie.

Przypominam mi się powiedzenie, które stało się dla mnie inspiracją do podjęcia ryzyka i założenia własnej firmy: "Najczęstszą przyczyną porażek startupów jest to, że ktoś nie zdecydował się ich założyć". Mi udało się pomyślnie wejść na drogę do sukcesu.

wtorek, 1 grudnia 2009

Przegląd architektury Projektu DLNA

DLNA specyfikuje 12 klas urządzeń przydzielonych do 3 głównych grup. Te klasy, które mnie najbardziej interesują to:
  1. DMS (Digital Media Server) - zapewnia funkcjonalność zbierania, nagrywania, udostępniania i chronienia zasobów multimedialnych. Przykładem takich rozwiązań są urządzenia typu NAS z opcją serwera multimediów.
  2. DMP (Digital Media Player) - zapewnia funkcjonalność zlokalizowania DMS'a oraz pobierania zasobów udostępnionych przez serwer w celu ich renderowania. Odbiorniki telewizyjne, zestawy kina domowego, multimedialne telefony to urządzenia, które mogą realizować funkcjonalności DMP
  3. M-DMP (Mobile Digital Media Player) - tutaj sprawa oczywista - jest to mobilna wersja DMP.
  4. M-DMU (Mobile Digital Media Uploader) - w tej kategorii prym wiodą obecnie telefony z funkcją robienia zdjęć i filmów. Wykonane przez nie zdjęcia można wgrać jako multimedialny zasób do DMS.
  5. M-DMD (Mobile Ditigal Media Downloader) - pozwalają ściągnąć zasoby udostępnianie przez DMS i jego mobilnej wersji (M-DMS) oraz odtwarzać je z lokalnej kopii.
  6. M-DMC (Mobile Digital Media Controller) - mobilny odpowiednik DMC do kontrolowania komunikacji pomiędzy DMS a DMP (M-DMS i M-DMP), np.: PDA.
Oprócz powyższych klas wyróżniono jeszcze: DMC, DMR, DMPr, M-DMS, M-NCF oraz MIU. Opis tych klas wraz z ich podziałem na 3 główne grupy znaleźć można pod następującym adresem.

Poniżej przedstawiony jest schemat logiczny poszczególnych elementów, których integrację zamierzam przetestować.
Na poniższym rysunku chciałbym przedstawić jak elementy ukazanego powyżej systemu logicznego DLNA mapują się na konkretne urządzenia, które planuję wykorzystać do testów.
Funkcjonalność DMS zapewni laptop HP z zainstalowanym odpowiednim oprogramowanie serwerowym. DMP 1 to laptop Sony VAIO wraz z preinstalowanymi aplikacjami udostępnianymi przez Sony. DMP 2 to PC na którym zostanie zainstalowany darmowy klient spełniający wymagania DMP. Wymagania M-DMP, M-DMU, M-DMD i M-DMC spełni Sony Ericsson X1 wraz z zainstalowanymi odpowiednimi aplikacjami. Wszystko będzie spięte za pomocą AP i routera w jednym: Asus WL500W.

W kolejnych wpisach postaram się przybliżyć kolejne elementy rozwiązania które chciałbym przetestować.