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ć.