Linux_07_2010_PL

March 25, 2018 | Author: yarghard | Category: Wikipedia, Linux, Linux Distribution, Facebook, Google


Comments



Description

7/2010 Slackware 13.1 wydany Wydano finalną wersję linuksowej dystrybucji Slackware w wersji 13.1. Nowa wersja przynosi wiele aktualizacji oraz ulepszeń, wśród nich środowiska graficzne Xfce 4.6.1 oraz KDE 4.4.3. Poszerzono zarządzanie urządzeniami za pomocą warstwy abstrakcji sprzętu (Hardware Abstraction Layer) oraz udev. Dzięki ConsoleKit można obsługiwać urządzenia podczas przełączania użytkowników a PolicyKit zapewnia wszechstronne przypisywanie praw użytkownikom. Nowy Slackware posiada jądro w wersji 2.6.33.4. Binaria zostały zlinkowane z glibcem w wersji 2.11.1. Wśród dostępnych kompilatorów jest GCC 4.4.4 obsługujące języki C, C++, Objective-C, Fortran-77/95 i Ada 95. Wśród innych narzędzi programistycznych znajdziemy Perl 5.10.1, Python 2.6.4, Ruby 1.9.1p378, Subversion 1.6.11, git-1.7.1, mercurial-1.5.2, Qt designer a także KDevelop. Apache występuje w wersji 2.2.15 i zawiera obsługę Dynamic Shared Object a także SSL i PHP 5.2.13. Obsługiwane są standardy PCMCIA, CardBus, USB, IEE1394 (FireWire) oraz ACPI. Nowe narzędzia do zarządzania pakietami ułatwiają pracę z nimi. Dostępne są przeglądarki Konqueror 4.4.3, SeaMonkey 2.0.4 i Firefox 3.6.3 z Thunderbirdem 3.0.4. Użytkownicy mają do dyspozycji także wiele innych pakietów zawierających ciekawe aplikacje i narzędzia. Źródło : http://www.dobreprogramy.pl/ Miesięcznik Linux+ (12 numerów w roku) jest wydawany przez Software Press Sp. z o.o. SK Redaktor naczelny: Tomasz Łopuszański [email protected] Projekt okładki: Agnieszka Marchocka Skład i łamanie: Tomasz Kostro www.studiopoligraficzne.com Kierownik produkcji: Andrzej Kuca [email protected] Stali współpracownicy: Andrzej Jankowski, Roger Zacharczyk, Leszek Konka, Piotr Brzózka, Robert Romaniuk, Sławomir Iwanek Adres korespondencyjny: Software Press Sp. z o.o. SK, ul. Bokserska 1, 02-682 Warszawa, Polska tel. +48 22 427 36 91, fax +48 22 224 24 59 www.sdjournal.org [email protected] Dział reklamy: [email protected] Redakcja dokłada wszelkich starań, by publikowane w piśmie i na towarzyszących mu nośnikach informacje i programy były poprawne, jednakże nie bierze odpowiedzialności za efekty wykorzystania ich; nie gwarantuje także poprawnego działania programów shareware, freeware i public domain. Wszystkie znaki firmowe zawarte w piśmie są własności odpowiednich firm. Zostały użyte wyłącznie w celach informacyjnych. Osoby zainteresowane współpracą prosimy o kontakt: [email protected] SPIS TREŚCI WYWIAD 8 Wywiad Paweł Jochym – współzałożyciel polskiej Wikipedii – wywiad dla Linux+ WARSZTATY 12 Grand Unified Bootloader 2 – szyty na miarę Roger Zacharczyk GRUB od dawna jest domyślnym bootloaderem stosowanym w wielu dystrybucjach Linuksa. Od czasów jego ostatniego, stabilnego wydania w wersji pierwszej wiele uległo zmianie. Przede wszystkim, druga wersja GRUBa została napisana od zera, by osiągnąć pełną modularność oraz maksymalną przenośność. Przygotowano specjalną listę mailingową oraz wiki, by użytkownicy oraz developerzy mogli zgłaszać swoje uwagi. 18 Programowanie w Qt 4.6 pod Ubuntu – moduł QtNetwork. Klient FTP Łukasz Klejnberg W części drugiej skoncentrujemy się głównie na module QtNetwork i jego możliwościach. Stworzymy od podstaw nową aplikację, która będzie prostym klientem FTP. 7/2010 4 SPIS TREŚCI ROZWIĄZANIA 26 Sklep w CMS-ie Paweł Wolniewicz Założenie internetowego sklepu na istniejącej witrynie nie musi oznaczać instalacji od podstaw kolejnej aplikacji oraz pracowitej integracji z wykorzystywanym dotychczas serwisem. Dzięki rozszerzeniom do popularnych CMS-ów rozpoczęcie handlu w sieci ograniczy się do skopiowania na serwer odpowiedniej wtyczki, skonfigurowania jej i utworzenia katalogu produktów. A potem będzie już można zacząć obsługiwanie pierwszych klientów. rem. Brak świadomości konieczności posiadania wiedzy dostępnej dla całego zespołu prowadzi zazwyczaj do powstawania antywzorców w projektach. ROZRYWKA 42 Blob Wars – episode II Maciej Mroziński Parę miesięcy temu mieliście okazje poznać Boba – żołnierza należącego do rasy Blobów zmuszonego do poznania smaku wojny oraz obrony rodzimej krainy przed żądnymi władzy okupantami. Dzisiaj przyjrzymy się znacznie bardziej rozbudowanej, przeniesionej w trzeci wymiar drugiej części jego przygód. 32 Zimbra Collaboration Suite cz. 3. Nadzór i administracja Piotr Kupisiewicz W ostatnim artykule z serii przedstawię niektóre zaawansowane funkcje administracyjne Zimbry, czyli na co zwracać uwagę, administrując serwer. 48 Rozmowa ze Stephenem J. Sweeney – jednym z twórców Parallel Realities Maciej Mroziński DLA POCZĄTKUJĄCYCH 36 Kontrola jakości projektu metodą client i server side control Łukasz Lechert Każdy projekt złożonego systemu informatycznego obarczony jest ryzykiem. Ryzyka te dotyczą aspektów związanych z zarządzania wiedzą oraz jej transfe- RECENZJA 52 Router Linksys WRT160NL Roger Zacharczyk Reklama www.lpmagazine.org 5 google. w której dostępne jest szyfrowanie połączenia z wykorzystaniem protokołu SSL. a to prawdopodobnie ten współczynnik (wraz z ceną) zadecyduje o jej przyszłości. Niestety nie wiadomo. Stanie się to możliwe dzięki równoległemu połączeniu 100 lub więcej kości pamięci.com i ma aktualnie status beta.pl/ 6 7/2010 .eu/news/science/ 100519_en. Więcej informacji na temat bezpiecznego wyszukiwania można uzyskać.AKTUALNOŚCI Dział prowadzi Andrzej Jankowski Dyski SSD o przepustowości 10 GB/s – całkiem niedaleka przyszłość? Do 2020 roku Internet 30 Mbps dla wszystkich – nowy plan Komisji Europejskiej Grupa japońskich naukowców z uniwersytetu Graduate School of Engineering w Tokio opracowała zaawansowane technologicznie kości pamięci NAND flash. nie są jeszcze szyfrowane i linki do nich zostały usunięte z Google SSL. 09-CV-2596H WMC) między wydawcą internetowego magazynu erotycznego Perfect 10 a serwisem Rapidshare sąd federalny w Kalifornii oddalił żądanie wydania nakazu zaprzestania działalności przez hostera plików. bowiem dziś co 3 na 10 Europejczyków nie korzystało jeszcze z Internetu. Google zadeklarował. Firma uprzedza ponadto. Nowa. by do 2020 roku każdy Europejczyk miał dostęp do szerokopasmowego Internetu o łączu 30 Mbps. że korzystanie z wyszukiwarki przy użyciu szyfrowanego połączenia nieznacznie wydłuży czas oczekiwania na wyniki. magazyn domagał się – poza zakazaniem prowadzenia działalności – odszkodowania i kar w wielomilionowej wysokości. Plan jest częścią strategii rozwoju Europy na najbliższe 10 lat znanej jako Inteligentny i zrównoważony rozwój sprzyjający włączeniu społecznemu. że magazynowi Perfect 10 nie udało się wykazać. że dyski SSD oparte na tej technologii będą w stanie osiągnąć prędkości transferów dochodzące nawet do 10 GB/s. Komisja Europejska ma nadzieję.pl Komisja Europejska chce. Źródło: http://osnews. Perfect 10 pozwał Rapidshare’a w listopadzie 2009 roku. Jeszcze większe wrażenie robi napięcie podczas operacji zapisu danych – 20 V w przypadku współczesnych kości pamięci oraz zaledwie 6 V w nowym osiągnięciu Japończyków. Obecnie bezpieczna wersja Google zapewnia jedynie podstawową funkcjonalność i ogranicza się wyłącznie do wyszukiwania stron internetowych. Prawnicy wydawcy erotyki żądali. a część dotycząca rozwoju IT i technologii komunikacyjnych stanowi pierwszy z jego siedmiu głównych punktów “Technologie informacyjne i komunikacyjne stanowią kluczowy element strategii rozwoju gospodarczego Europy przeciwdziałający zmianom klimatycznym i starzeniu się społeczeństwa.dobreprogramy. Jest to kluczowa część planu. który ma przyspieszyć rozwój gospodarczy Europy. Źródło: http://nvision. Wyszukiwarka Google nie jest pierwszą usługą. pobierające o 86% mniej energii niż obecne rozwiązania i oferujące przy tym 7-krotnie wyższe prędkości transferów. co jest 3-krotnie niższą wartością niż w przypadku obecnie stosowanych technologii. czytając odpowiednie artykuły znajdujące się na stronach wsparcia technicznego. bezpieczna wersja Google dostępna jest pod adresem https://www. Dostęp do pasma o wysokiej przepustowości ma zaledwie 1% Europejczyków.pl/ Wyszukiwarka Google z szyfrowaniem SSL Tymczasowe zwycięstwo serwisu Rapidshare w procesie o naruszanie praw autorskich W procesie (sygn.htm. Przewodnicząca składu sędziowskiego Marilyn Huff uznała. że połowa mieszkańców Europy uzyska dostęp do łącz o pasmie przepustowości wynoszącym 100 Mbps. że Rapidshare ułatwiał pobieranie materiałów nielegalnie umieszczonych w serwisie. Plan to ambitny. 12% Japończyków i 15% mieszkańców Południowej Korei. Dodatkowe moduły. Ken Takeuchi – profesor przewodzący grupie naukowców – uważa.europa. Google wprowadził do swojej wyszukiwarki możliwość nawiązania szyfrowanego połączenia przy użyciu bezpiecznego protokołu SSL. jakimi użytkownik wymienia się z Google. Tzw. W chwili obecnej stan sieci informatycznej w Europie pozostaje daleko za Stanami Zjednoczonymi i Japonią. że będzie starał się poszerzać bazę usług wspierających szyfrowanie połączenia. Dzięki temu nikt postronny nie może przechwycić żadnych treści. ferroelektryczne kości pamięci NAND flash (Fe-NAND flash) bez problemu pracują z podstawowym napięciem 1 V. oskarżając hostera o naruszenie praw autorskich i praw do marki oraz o nieuczciwą konkurencję. Wcześniej taka możliwość pojawiła się Gmailu i internetowym pakiecie biurowym Google Docs. Gwarantuje ona użytkownikowi całkowite szyfrowanie połączenia między przeglądarką a serwerami Google przy użyciu protokołu SSL. jak wygląda kwestia żywotności pamięci Fe-NAND flash. takie jak Mapy czy Obrazki.” – źródło: http://ec. Źródło: http://www. że 8 na 10 przeglądarek pozostawia po sobie unikalny ślad. większość internautów przestanie nielegalnie dzielić się plikami kiedy tylko otrzyma listowe ostrzeżenie od Eircomu. wreszcie doszło do porozumienia. Universal. piraci będą odcinani od Sieci. W podobny sposób wypowiedzieli się rzecznicy pozostałych portali społecznościowych. Jeden z dziennikarzy Wired przekonał się. Nie naruszamy prywatnych danych osobowych. czy racja leży po stronie UPC.in. Pod lupę wzięci zostaną przede wszystkim użytkownicy sieci P2P. że kilka znanych serwisów takich jak Facebook czy MySpace przekazywało reklamodawcom informacje na temat swoich użytkowników. Ci pozostali wiedzą o numerze IP. Warner. że zezwalały na przekazywanie poufnych danych użytkowników reklamodawcom. systemu operacyjnego. Zdaniem dyrektora IRMA. rodzielczości. który jest porównywalny do cyfrowego odcisku palca. jeśli użytkownik kliknął wybraną reklamę. Działo się tak mimo zapewnień serwisów. by ukryć swoją prawdziwą tożsamość oraz miejsce przebywania. Mogły to być ich imiona i nazwiska.powiedział Doyle. Według dziennikarzy The Wall Street Journal dane otrzymywały takie przedsiębiorstwa reklamowe jak Google. Wyniki badania zostały przeprowadzone za pomocą testu na stronie Electronic Frontier Foundation Skrypt pobierał wszystkie dostępne dane dotyczące m. numery ID. W przyszłym miesiącu rozpocznie się rozprawa w sądzie mająca rozstrzygnąć. aby praktykom stosowanym przez serwis przyjrzała się Federalna Komisja Handlu. Firmy reklamujące się w Facebooku czy na innych stronach mogły wykorzystywać takie informacje do personalizowania przekazu pod kątem użytkownika. Electronic Frontier Foundation dowiodła. że dane są chronione. czy też IRMA. który może zostać wykorzystany do śledzenia internauty.pl/ Dzięki porozumieniu między wytwórniami i jednym z największych dostawców Internetu w Irlandii. którzy ściągają i udostępniają pirackie materiały w Sieci będą karani. Również amerykański senator chciałby. że ich identyfikacja jest możliwa za pomocą śladów.dobreprogramy. Jak się okazało. których posiadacze naruszają prawa autorskie. jakie pozostawia po sobie ich własna przeglądarka stron WWW. Źródło: http://www. Eircom stosować będzie system trzech uderzeń wobec osób rozpowszechniających nielegalnie muzykę.Aktualności Dział prowadzi Andrzej Jankowski Cyfrowy odcisk palca – teraz już się nie ukryjesz 84% przeglądarek w sieci pozostawia po sobie unikalny ślad. Dicka Doyle’a. Śledzeniem piratów w Sieci zajmować będzie się irlandzki odpowiednik ZAiKS-u IRMA. Większość jednak nie wie. w którym przedstawiciel Facebooka odnosił się na temat wcześniejszych zarzutów dotyczących prywatności. Zdaniem dziennika Irish Times organizacja zrzeszająca wytwórnie muzyczne w Irlandii skorzysta w tym celu z usług firmy DtecNet. Internautom wydaje się. Staramy się zachęcić ludzi do powrotu do legalnych sposobów na zdobywanie muzyki . Najbardziej zagorzali piraci zostaną odcięci od Internetu nawet na rok. Sony. że korzystając z sieci pozostają zupełnie anonimowymi.org 7 . że TOR to za mało. pobrane dane w 84% przypadków były zupełnie unikalne i mogłyby posłużyć do identyfikacji komputera internauty. Źródło: http://www. że to nieprawda.lpmagazine. DoubleClick czy Right Media należące do Yahoo! Przekazywanie informacji odbywało się.pl/ www.heise-online. Przed żądaniami irlandzkich wytwórni nie ugiął się inny dostawca Internetu w Irlandii . Po trwającym ponad rok sporze między wytwórniami EMI. aby sprawy związane z naruszeniami prawa autorskiego zostały wyjaśnione w postępowaniu z udziałem ławy przysięgłych. przeglądarki i zainstalowanych w niej pluginów i następnie analizował je pod kątem unikalności. Na początku maja informowaliśmy o wywiadzie. Jednak na razie proces nie doszedł do tego etapu: podczas posiedzenia w ubiegłym tygodniu sąd rozstrzygał o losie niektórych wniosków obu stron – w tym także o odrzuconym wniosku powoda. który jest niczym adres zamieszkania i wiedzą jak go ukryć. Źródło : http://www.dobreprogramy. The Wall Street Journal w opublikowanym raporcie twierdzi. W teście udział wzięło w sumie milion internautów. Zdaniem rzecznika Facebooka poufne dane nie były wysyłane do reklamodawców. a operatorem Eircom. Eircom zgodził się na przyjmowanie maksymalnie 50 adresów IP tygodniowo. Zdaniem pracowników firmy nie ma prawnych podstaw na monitorowanie czy odłączanie użytkowników Sieci. Pewien procent użytkowników zdaje sobie sprawę.pl/ Facebook i MySpace przekazywali poufne dane? Gazeta The Wall Street Journal zarzuca portalom społecznościowym takim jak Facebook czy MySpace. korzystając z takich technologii jak proxy czy TOR. a nasza zasady nie pozwalają reklamodawcom na zbieranie informacji użytkowników bez ich zgody .pl/ Irlandia będzie odłączać piratów od Sieci Źródło: http://osnews. Już niedługo na podstawie adresów IP internauci.UPC. a także prywatne informacje.stwierdził przedstawiciel serwisu. Linux to wszak tylko kernel. niestety. dostosować go do bardzo różnych zastosowań – od telefonu po superkomputery.właściwie tylko Fedorę i SuSe – i pod tym względem nie widzę między nimi znaczących różnic. Sam staram się trzymać jak najbliżej tego pierwszego wariantu. że nawet całkiem zaawansowany użytkownik może mieć poważne kłopoty z poradzeniem sobie z tym wszystkim. Na serwerach debian/ubuntu serwer. to jedyną barierą ich stosowania. Jeśli mówimy natomiast o systemach potocznie nazywanych Linux. a nie dystrybucji. Przykładem może być AutoCAD czy specjalistyczne opro- 8 7/2010 . W mojej ocenie. Jakich dystrybucji najczęściej Pan używa? W tej chwili. czyli dzisiejszych dystrybucjach. Na tyle.WYWIAD Rozmowa z Pawłem Jochymem Współzałożycielem polskiej wersji Wikipedii Od kiedy zaczął Pan się interesować wolnym. eliminacja HAL-a lub uproszczenie/ modernizacja systemu startu. Pamiętam. wielką wagę do wolności składników. Drażnią mnie też miejsca. Pierwsza dystrybucja to był Slackware. otwartym oprogramowaniem? Kiedy i w jaki sposób zaczął Pan przygodę z Linuksem? Dawno. aż do nastawionych bardziej pragmatycznie i zawierających zintegrowane nie-wolne składniki. że jest tutaj miejsce dla pełnego spektrum od dystrybucji przykładających Tak sądzę. czego nie lubi Pan w obecnych dystrybucjach ( np. wymagające złożonej integracji i głębszej wiedzy na temat funkcjonowania systemu. Niestety czasem polityka producentów sprzętu zmusza do kompromisu. to myślę. które kompilowałem. to była seria 0. gdzie jego zastosowanie byłoby niepraktyczne. Dlatego z radością przyjmuję każdy ruch w przeciwnym kierunku jak np. że w takich obszarach nadal ma zastosowanie otwarte i wolne oprogramowanie. że pierwsze wersje jądra Linuksa. sposób konfiguracji)? Narastającej komplikacji. są większe wdrożenia. Jedynym obszarem. Perfekcyjnej obsługi sprzętu. a na stacjach roboczych i laptopach Ubuntu. jest dostępność oprogramowania do konkretnych zastosowań – zazwyczaj zamkniętego i komercyjnego. gdzie kuleje wsparcie dla sprzętu – ale to jest oczywiście w największej części wina producentów sprzętu. Coraz więcej jest warstw realizujących relatywnie proste funkcje. Zrobiło się to dosyć skomplikowane. jaką dostrzegam. to całość zaczyna być trudna do opanowania. może trochę wcześniej. Jego budowa pozwala. działanie. jaki przychodzi mi do głowy. w którym producenci dystrybucji mogą liczyć na zyski. Do czego wg Pana nie nadaje się Linux? Chyba trudno znaleźć coś takiego. Jeśli dodać do tego fakt. miejscem.99.98 lub 0. jak mogliśmy się przekonać w przeszłości. filozofia. Jeśli chodzi o filozofię. Nie-debianowe dystrybucje znam słabo . ponieważ zazwyczaj działa bardziej niezawodnie. to czy wymagałby Pan od niej czegoś więcej niż teraz? Czy jest coś. Dobrym przykładem jest pulseaudio/alsa/gstreamer. Reszta jest już teraz. są systemy czasu rzeczywistego. Od początku Linux nie był projektowany do takich zastosowań i chyba nie jest rozsądnym popychanie go w tym kierunku. Jednocześnie sądzę. Czy gdyby musiałby Pan płacić za jakąś dystrybucję. a właściwie niemal od zawsze Debiana i jego pochodnych. że takich podsystemów jest więcej. Jeszcze w czasie studiów – około roku 1990. Obsługę techniczną natomiast lepiej od producentów realizują lokalne firmy lub osoby. Więcej poświęcam na popularyzację projektu niż na jego tworzenie. że jeszcze przez pewien czas. Czy używa Pan Windowsa.to już na szczęście mam za sobą. Ze statystyk wynika wspomniana już liczba 20 tysięcy. www. Co do jakości. ale z osobistych kontaktów wnioskuję. że także w innych osiach. część technicznych. ilości haseł. Ja nie miałem z tym aż tak dużo wspólnego. jeśli chodzi o ilość haseł – jesteśmy wszak czwartą co do wielkości Wikipedią – po Niemcach i Francuzach. Powodów jest wiele. W jaki sposób doszło do tego. a jeśli tak. która przyszła razem z laptopem. Myślę. od tego. być może rok lub dwa. profesjonalnie opisywanymi zagadnieniami. aby ludzie czytali i poważnie traktowali licencje EULA Windows czy OSX. niechęć do zmian w używanych narzędziach czy strach przed nowym i nieznanym – dodatkowo podsycany przez czarny PR konkurencji. Trudno to nazwać sensownym urządzeniem.lpmagazine. Natknąłem się na anglojęzyczną Wikipedię. To jest zgadywanie. że jest to prawdopodobnie dziesiąta co do popularności strona w polskim Internecie. jakie przychodzi mi do głowy. ale jest niezwykłe jako demonstracja możliwości. że jest ona bardzo mocno uzależniona. No i ludzka inercja. Nawet Chińska Wikipedia jest mniejsza. ich jakości oraz wandalizmu? Szukałem czegoś w Internecie. Jestem fizykiem i wiele narzędzi. że zaczął Pan współtworzyć polską Wikipedię? Jak wypada polska wersja Wikipedii na tle innych pod względem ilości odwiedzin. gdy tylko wyniosę się z PKO. Mam licencję. a także lepszej identyfikacji informacji. Reszta to kilka tygodni wysiłku. Łączy nas niewątpliwie zamiłowanie do wiedzy i chęć dzielenia się nią. ale statystyki wskazują. jakich używam albo jakie tworzę. Wątpię. ale myślę. że dosyć dobrze. Trzeba jednak pamiętać. czy raczej pasjonaci – amatorzy? O jakim najdziwniejszym zastosowaniu tego systemu Pan słyszał? Nie wiem.Rozmowa z Pawłem Jochymem gramowanie obsługujące sprzęt pomiarowy. ale na pewno kuriozalne: zegarek naręczny z Linuxem. aby artykuły były szersze i staranniej opracowane. Zwłaszcza po wprowadzeniu systemu „wersji przejrzanych” . a potem tysiące autorów. To zjawisko naprawdę przerosło moje oczekiwania. O ilości odwiedzin w stosunku do innych Wikipedii nie umiem nic powiedzieć. To chyba wszystko. że społeczność wymyśli jeszcze wiele nowych mechanizmów pozwalających na podniesienie jakości tekstów Wikipedii. Kiedyś do płatnika . Do dostępu do domu maklerskiego PKO (wyłącznie IE – skandal w moim odczuciu). Przynajmniej. czy to najdziwniejsze. liczba artykułów będzie rosła w zbliżonym do obecnego tempie. Ja to zrobiłem i były to dla mnie warunki całkowicie nie do przyjęcia i to chyba nawet bardziej w przypadku Apple niż Microsoft. Przejawem tych tendencji są na przykład prowadzone obecnie akcje oznaczania artykułów jako „przejrzanych” czy „dobrych”. Zważywszy na populację – nie mamy się czego wstydzić. że nie ma polskiej wersji językowej.dzięki niemu wandalizmy stają się mniej uciążliwe dla zwykłego czytelnika. którzy stworzyli dzisiejszą Wikipedię. czy też niesławny Płatnik. Kim są twórcy Wikipedii? Czy są to w przeważającej części ludzie zajmujący się Sądzę. Mnie zwyczajnie ani MS-Windows. odpowiada mi też ogólna filozofia systemów z tej rodziny. a część „ideologicznych”. Jak przebiegał rozwój polskiej Wikipedii i jak Pan ocenia perspektywy jej rozwoju? Właściwie to jedynym słowem. że to niemal kompletny przekrój społeczeństwa – od gimnazjalisty po profesora i myślę. jak (nie)działają strony WWW w IE. Techniczne powody związane są z charakterem mojej pracy. Przyczyna jest jak widać tylko jedna – brak wsparcia dla Linuxa. To jest ponad 20 tysięcy bardzo różnych ludzi. który kiedyś pokazał IBM. jakie kryterium przyjmiemy dla wyróżnienia „aktywnych autorów”. działa „naturalnie” w środowisku „unixowym”. Trudno mi się autorytatywnie wypowiadać na ten temat. Po prostu brakuje mi go. a jednocześnie wzmocni się już widoczny ruch czy tendencja do pracy nad podniesieniem jakości wiadomości zawartych w Wikipedii. ale przy moich obecnych potrzebach mógłbym się jej całkowicie pozbyć. to do czego? Czy jest Pan w stanie podać przybliżoną liczbę osób zajmujących się aktywnie tworzeniem polskiej Wikipedii? Do sprawdzania. z jednej strony godnych zaufania. a z drugiej wymagających dopracowania. można by sobie życzyć. Ile czasu poświęca Pan na pracę nad Wikipedią? Obecnie bardzo niewiele. Bardzo wielu to właśnie pasjonaci – amatorzy. spodobało mi się i zobaczyłem. jest: „gwałtownie”. aby był to bardzo duży problem projektu. A wandalizmy? Oczywiście są i każda ich ilość jest naturalnie ilością zbyt dużą. Nie sądzę jednak. ani OS-X „nie pasuje” – choć zapewne dla wielu są to doskonałe rozwiązania.org 9 . że już niedługo czeka nas mały „face lifting” i zmiana wyglądu na bardziej współczesny – jak każdy może się przekonać. Wygląda też na to. że projekt radzi sobie całkiem nieźle z ich korygowaniem. Jest wiele wariantów licencji CC dostosowanych do różnych okoliczności. a po drugie. że w pierwszym kwartale br. Nie spotkałem się wśród wikipedystów z opinią. są mocno przesadzone. Plany na przyszłość co do Wikipedii? Co nas czeka? Myślę. W anglojęzycznej Wikipedii jest coraz mniej „łatwych do napisania” artykułów. Nawet gdyby była to prawda. Kwoty potrzebne na jej funkcjonowanie są znaczne. Mówimy o encyklopedii. aby społeczność Internetu dopuściła do jego upadku. Czasem z powodu jakiegoś nieporozumienia czy sporu zdarzają się odejścia nawet bardzo zasłużonych autorów – co bywa stratą dla projektu. Jednocześnie wydaje się. mogą próbować wywołać określone reakcje na pewnej grupie ludzi? W ubiegłym miesiącu brytyjski dziennik „The Times” podał informację. Jak się trafi. tylko cały ich zestaw. co pamiętam. 10 7/2010 . swoich redaktorów. Jest to jednak przedsięwzięcie znacznie mniejszej skali i z powodu swojej konstrukcji prawdopodobnie skazane na pozostanie takim. roku Wikipedia ( brytyjska) straciła ok. Czy może Pan się ustosunkować do tej sytuacji? Zapewne zdarza się to czasem. o ile się nie mylę.org i zapoznania się z opisanymi tam licencjami. Na przykład. Czy można oszacować. To nie jest jedna licencja. jako że podlegają formalnej recenzji i redakcji. Czas pokaże. Niemniej projekt stał się już tak wartościowym źródłem wiedzy. czy raczej powstają w skutek pomyłek albo braku wiedzy autorów? Jakiej dystrybucji Linuksa i przeglądarki internetowej używa Pan. Encyklopedia Britanica ma ich około 120 tysięcy. Ponadto jest to proces dosyć naturalny i łatwo go zrozumieć. która ma ponad 3 mln haseł. aby był to duży problem. ok 7 mln dolarów rocznie. to metodyka uzyskania tej liczby jest podawana w wątpliwość. Zostały one opracowane. Ale po pierwsze. edytując Wikipedię? Nie podjąłbym się takiego oszacowania. aby był to problem. Myślę. Paradoksalnie może to świadczyć nie o słabości czy kłopotach projektu. jak i źle pojmowane poczucie humoru bywa przyczyną powstawania takich wpisów. Czy zaobserwował Pan próby wykorzystania Wikipedii przez polityków czy koncerny przemysłowe w niekoniecznie dobrych zamiarach? Chodzi mi o to. często po jakimś czasie wracają. a osoby i organizacje działające w ten sposób udaje się szybko „przywołać do porządku”. tzn nieistniejące osoby. Co do perspektyw przetrwania. nie ma ludzi niezastąpionych. Każdy znajdzie coś dla siebie. Były takie przypadki w anglojęzycznej Wikipedii. co może powodować zniechęcenie i zanik aktywności znacznej liczby mniej zaangażowanych autorów. Czasami pojawiają się w sieci informacje o fałszywych wpisach. trzeba było nawet ograniczać możliwość edycji biurom amerykańskiego senatu.04 obecnie) i Chromium lub Firefoxa. Choć trzeba przyznać. że głosy o śmierci Wikipedii.WYWIAD Jak wygląda lub może wyglądać konkurencja dla Wikipedii? Jakie są jej szanse na przetrwanie? Jak to zjawisko (odchodzenie) wygląda w przypadku naszej Wikipedii? W tej samej kategorii wolnych encyklopedii właściwie nie ma konkurencji. aby umożliwić autorom udostępnianie swoich dzieł z możliwością ich dalszego wykorzystania przy zachowaniu pewnej kontroli nad sposobem. jakie pojawiały się po tym doniesieniu. to oznacza to tylko niewielką zmianę dynamiki wzrostu. że potencjalnie teksty w Citizendium mogą być wyższej jakości. 49 tys. Ubuntu (10. że są to przypadki odosobnione i nie trwają długo. Z tego. że nie wierzę. Po pierwsze. więc nie jest to kwestia bagatelna. wydarzenia itp. jak dużo jest takich wpisów i czy są one działaniem celowym. Każdego twórcę zachęcam do odwiedzenia strony creativecommons. Te liczby podlegają dużym wahaniom. biorąc udział w jego testowaniu. Myślę. Jedynym znaczącym projektem jest chyba Citizendium – projekt założony przez współzałożyciela Wikipedii Larrego Sengera. że fałszując dane. w jaki się to odbywa. licencja stosowana przez Wikipedię pozwala na nieograniczone kopiowanie i rozpowszechnianie oraz tworzenie utworów pochodnych przy zaznaczeniu pierwotnego autorstwa i udostępnieniu dzieł pochodnych na tych samych zasadach. Wydaje się jednak. że tak niewiedza. Nie sądzę. Masowych „dezercji” nie zaobserwowano. że lekka stagnacja wzrostu na korzyść poprawy jakości. Czy może Pan przybliżyć licencję Creative Commons? Trzeba by raczej prawnika pytać. ale o jego dojrzałości. Wikipedia utrzymuje się ze zbiórki publicznej. zainteresowania. że to indywidualni twórcy. Linus zachował się pragmatycznie i poszedł na kompromis. tylko stworzenie odpowiedniego wolnego odpowiednika. utworów. a na dodatek zdominowana przez punkt widzenia wielkich koncernów medialnych i producentów oprogramowania. PAN w Krakowie. Jakie są Pana pasje. Widać wyraźnie. 220 tys. Myślę. PAWEŁ JOCHYM Urodzony w 1966 roku (ten sam rocznik co Jimmy Wales:) Jest �zykiem. Tylko niewielu dostrzega nowe możliwości. to właściwym krokiem nie jest użycie narzędzia zamkniętego. Rozszerzenie jego działania na wiele dziesięcioleci po śmierci autora utworu jest absurdalne. co po pewnym czasie zemściło się na całym projekcie. rozważając właściwe regulacje prawne. Mam wielki szacunek do siły i stopnia pryncypialności tego człowieka. zapewniając mu jednocześnie ochronę przed plagiatem. albo że jest znikomych rozmiarów. 30 prac z �zyki i kilku kawałków wolnego oprogramowania. Świetnym przykładem takiej sytuacji była cała historia z systemem kontroli wersji dla jądra Linuxa. Mają natomiast bardzo dobrze zdefiniowany cel w postaci zysku. co samo w sobie nie jest niczym złym. ale już po tytule widzę. Każda dziedzina działalności ma swoją specyfikę i wymaga rozwiązań do niej dostosowanych. ale z pewnością nie można powiedzieć. Muszę ją koniecznie przeczytać.lpmagazine. że autorzy dzieł literackich jeszcze się nie „przebudzili”. a jest ono niezbędne. że tutaj nie ma rozwiązań uni-sex. to co Pan o niej myśli? Niestety nie. 32 tys. Reklama Zmiany. www. a nie korporacje medialne wzbogacają dziedzictwo kulturalne ludzkości i to o nich oraz o odbiorcach należy myśleć. choć ostatnio karygodnie to zaniedbuję.com. prawo autorskie ma na celu stworzenie dodatkowego bodźca materialnego dla autora. Zapewne. że ruch niezależnej muzyki publikowanej na licencji CC jest całkiem aktywny: ponad 18 tys. która mu odpowiada. Branża literacka i muzyczna dopiero zaczyna zdawać sobie sprawę z tych zmian. że taki ruch nie istnieje. że jego postawa jest niepraktyczna. Zmieniły się koszty publikacji dzieła. Autor ok. jako że nie można wszak umotywować martwego autora do dalszej twórczości nawet największą sumą pieniędzy. Zmieniły się konieczne środki techniczne. że mi się spodoba. Jednak raz za razem okazuje się. Pośrednictwo wielkich domów wydawniczych nie jest już tak niezbędne. jak było jeszcze 20 lat temu. Na przykład licencja GPL nadaje się doskonale dla oprogramowania. które z rozszerzaniem zasobu tych dóbr nie mają wcale tak wiele wspólnego.org 11 . żeby się przekonać. Sądzę natomiast. hobby? Poza fizyką jest jeszcze astronomia. Warto też pamiętać. Zajmuje się teoretyczną �zyką ciała stałego. Czy czytał Pan książkę „Free Culture – How big media uses technology and the law to lock down culture and control creativity? Jeżeli tak. jakie wprowadził Internet w tę dziedzinę. film. to wiele energii i czasu zmarnowanego w czasie „bitkeeper wars” można by spożytkować znacznie lepiej na rozwój kernela. że idee wolnej kultury mają wielką przyszłość we wszystkich obszarach twórczości kulturalnej. wolności informacji głoszonych przez Richarda Stallmana? Czy „wolne” licencje mają szansę na popularyzację w branży muzycznej i literackiej? Sądzę. jednak dobrze jest o tym nie zapominać. że gdyby zrobić to od razu. Na przykład.Rozmowa z Pawłem Jochymem Co Pan myśli na temat poglądów nt. muszą doprowadzić do modyfikacji tego obszaru prawa. Myślę. W konsekwencji powstał git. nie każdy znajdzie tam muzykę. pracuje w Intytucie Fizyki Jądrowej. Lubię też chodzić po górach. Już teraz wystarczy wejść na jamendo. wykonawców. Trzeba jednak pamiętać. a jest praktycznie bezużyteczna dla dokumentacji czy dzieł literackich. że świadomość kwestii związanych z prawną stroną dóbr kultury jest obecnie zbyt niska. jakie daje Internet i technologie z nim związane – np. albumów. że trzymanie się zasad jest jednak właściwszą drogą niż zawieranie doraźnych kompromisów. książki elektroniczne. że gdyby nie Richard Stallman cały ruch wolnej kultury i oprogramowania nie istniałby. który jest wszak czystej wody „Stallmanowskim” rozwiązaniem problemu: jeśli nie ma wolnego narzędzia. Nie zawsze się z nim zgadzam i czasem sądzę. muzyka. fotografia. ntfs (także z kompresją). sfs. iso9660. Jego przenośność powinna więc być na jak najwyższym poziomie.WARSZTATY GRand Unified Bootloader 2 Szyty na miarę GRUB od dawna jest domyślnym bootloaderem stosowanym w wielu dystrybucjach Linuksa. LinuxBIOS i jest przenoszony na UltraSparc. zmiennych oraz funkcji. reiserfs. udf. minix. które spełniać będą odpowiednią funkcjonalność. befs. mimo że nie ma jeszcze oficjalnej. stabilnego wydania w wersji pierwszej wiele uległo zmianie. postanowiono przygotować odpowiednie narzędzie graficzne umożliwiające modyfikację konfiguracji GRUBa 2. Cały czas jednak jest on nadal rozwijany. Przede wszystkim. Przygotowano specjalną listę mailingową oraz wiki. znany niegdyś plik konfiguracyjny menu. stabilnej wersji (ostatnie wydanie w czasie pisania tego tekstu oznaczone zostało numerem 1. druga wersja GRUBa została napisana od zera. spełniał on swoje zadanie jako program umożliwiający załadowanie odpowiedniego systemu operacyjnego. extfs. Oznaczało to wprowadzenie wsparcia dla niestandardowych znaków (spoza ASCII). by osiągnąć pełną modularność oraz maksymalną przenośność. GRUB 2 został wdrożony już w wielu dystrybucjach Linuksa. Z czasem jednak zaczęły pojawiać się nowe urządzenia.cfg dostępnego pod tą samą ścieżką. został porzucony. Skoro chcemy trafić do niedoświadczonych użytkowników. który czasami uniemożliwiał kompatybilność wsteczną. affs. a wraz z nimi – nowe pomysły ich wykorzystania oraz wykorzystania oprogramowania. pętli. Status projektu GRUB 2 Cele projektu GRUB 2 GRUB 2 ma w zamyśle działać na wielu różnych architekturach sprzętowych. Wprowadzono też liczne poprawki w samym projekcie GRUBa. PC oparte o EFI (IntelMac). niewiele się w nim już zmieniało. PowerPC (z otwartym firmware. a chcemy dostarczać oprogramowanie otwartoźródłowe także zwykłym ludziom. a nie w czasie kompilacji. Działa on stabilnie i spełnia swe podstawowe zadania. a nie tylko programistom. a całość powinna zostać podzielona na moduły. by użytkownicy oraz developerzy mogli zgłaszać swoje uwagi. że postanowiono przygotować GRUBa nowej generacji.98). Przede wszystkim. ufs. xfs. Od czasów jego ostatniego. Różnice pomiędzy GRUB a GRUB 2 Zwykły użytkownik nie zauważy większych zmian. hfs(+). Ciekawostką jest pomysł umożliwienia instalacji GRUBa 2 na danej architekturze z innej architektury (crossplatform installation). bowiem "pod maską" został on zmieniony nie do poznania. zlokalizowany w katalogu /boot/grub. gdy tylko zachodzi potrzeba dokonania jakichś zmian. Także zmiany w modelu rozwojowym oprogramowania opensource wpłynęły na to. więc nie było potrzeby dokonywania w nim poważniejszych zmian. jfs. fat.lst. Pozorny brak różnic może jednak zmylić. lub które będą rozszerzać podstawową funkcjonalność i które będą ładowane w czasie działania. P o doprowadzeniu pierwszego GRUBa do stabilnej wersji. Rozpoznaje także wszystkie popularne systemy plików takie jak: afs. Wyeliminowano również Sta- 12 7/2010 . Cóż. należało także zapewnić lokalizację na odpowiednim poziomie. tar icpio. Od teraz używamy pliku grub. Pociągało to za sobą konieczność poprawnego zarządzania pamięcią. czyli PowerMac i Pegasos). Kolejną sprawą jest wsparcie dla skryptów umożliwiających stosowanie wyrażeń warunkowych. Działa obecnie na takich architekturach. Jako że użytkownicy oczekują od systemu operacyjnego prostoty użycia oraz intuicyjności. Menu wyboru systemu operacyjnego będzie wyglądało niemal identycznie w obu wersjach. jak PC (x86 i inne). na co zwrócimy jeszcze uwagę później. gdzie określimy partycję. jak np.lpmagazine. Narzędzie to pozwoli także na rozpoznanie istnienia innych systemów zainstalowanych na dyskach twardych lokalnego komputera.3) chainloader +1 } Listing 2.cfg Aby GRUB wiedział. Na podListing 1. Dodatkowe narzędzia dostarczone wraz z pakietem GRUB umożliwiają automatyczną detekcję pozostałych systemów operacyjnych rezydujących na twardych dyskach lokalnego komputera.cfg # Timeout for menu set timeout=10 set default=0 # Set default boot entry as Entry 0 # Entry 0 . potrzebuje on co najmniej pliku konfiguracyjnego. Nie ujmuje to jednak jego prostocie i intuicyjności – bez wczytywania się w komentarze powinniśmy poradzić sobie z jego ewentualną modyfikacją. Domyślna konfiguracja może zostać więc bez problemu zmodyfikowana. Jest on domyślnie dołączany do takich dystrybucji Linuksa. jeżeli chcemy korzystać z mechanizmu autentykacji.Chainload another bootloader menuentry "Chainload my OS" { set root=(hd0. Dyski twarde numerowane są tutaj od zera.cfg.GRand Unified Bootloader 2 ge 1. zamiast od 0.Load Linux kernel set root=(hd0. Spójrzmy na Listing 1. Ówczesny. Superużytkownik może z poziomu GRUBa edytować wpisy i uruchamiać je. Każdy taki wpis musi być opatrzony instrukcją set root. Jego nazwa to grub. za pomocą którego zostanie wygenerowany wspomniany już plik konfiguracyjny. Nieco niżej znajdują się dwa wpisy określające. Zwykły użytkownik może je tylko uruchamiać. że partycje numerowane są teraz nie od zera. a od jeden. GRUB wczyta domyślnie wybraną pozycję. jak wygląda to w pliku konfiguracyjnym – Listing 2. Superużytkownik musi być zdefiniowany. Jeżeli taki plik planujemy dopiero stworzyć (np. zobaczmy.org 13 . gdy zaczynamy tworzyć konfigurację od zera). bardzo prostą konfigurację. zabezpieczenie hasłem etc. podajemy ciąg znaków. jeżeli mieliśmy okazję przyglądać się konfiguracji GRUBa w wersji pierwszej. który z reguły odnajdujemy w katalogu /boot/grub. Warto zauważyć. Skoro mowa o zabezpieczaniu hasłem.1)" { linux /vmlinuz root=/dev/hda1 } # Entry 1 . warto skorzystać z polecenia grub-mkconfig.1) initrd /initrd menuentry "My Linux Kernel on (hd0. Gdy zaglądniemy do wnętrza pliku grub. który korzysta z innego bootloadera – może to być np. Zabezpieczenie GRUBa hasłem # Authentication data set superusers="user1" password user1 password1 password user2 password2 # Entry 1 menuentry "GNU/Linux" { set root=(hd0. Widzimy tam przykładową. który zostanie wyświetlony w menu. prosty plik konfiguracyjny zmienił się nie do poznania. A zależnie od dystrybucji (np. można wzbogacić ją o inne aspekty. Widzimy więc różnice pomiędzy wpisem dotyczącym Linuksa i wpisem dotyczącym innego systemu operacyjnego. Zaczynamy więc od zdefiniowania superużytkowników oraz określenia haseł dla użytkowników. jeśli tylko zajdzie taka potrzeba. Reszta instrukcji zależna jest już od specyfiki systemu operacyjnego. stosując cudzysłów. Windows. Opatrzone są one słowem kluczowym menuentry. w Ubuntu). Domyślna konfiguracja znajduje się w pliku /etc/default/grub. po którym. natomiast (uwaga!) wyjątkiem są partycje – liczymy je od 1.d/40_custom.cfg. Po upłynięciu zadanego czasu. która określona jest w kolejnej linii – widzimy tam instrukcję set default=0. na której znajduje się sys- tem operacyjny dostępny pod daną pozycją. jak ma się zachować. że czas wyświetlania menu wyniesie 10 sekund.1) linux /vmlinuz } #Entry 2 menuentry "Windows" --users user2 { set root=(hd0.cfg – jest bowiem często podmieniany przez Synaptica podczas aktualizacji jądra). Pozycje w menu numerowane są oczywiście od zera.2) chainloader +1 } www. gdzie sami mogą dodawać swoje pozycje odpowiadające systemom operacyjnym (standardowy plik – grub. jak Debian czy Ubuntu. które oznaczone są znakiem #. grub-mkconfig do wygenerowanego przez siebie pliku doda jedynie wpis o istnieniu obecnie uruchomionego systemu. Plik grub. Plik grub. co możemy wybierać z menu. jeżeli tylko dysponujemy w danej chwili niewielkim programem osprober. użytkownicy mają do dyspozycji dodatkowy plik konfiguracyjny zlokalizowany w /etc/grub. W przypadku braku wspomnianej aplikacji. pierwsza linia mówi nam o tym. możemy się nieco zdziwić.5. Pomijając komentarze. Wypasione menu Jednym z podprojektów GRUB 2 jest Graphical Menu. Po wprowadzeniu powyższego. należy skorzystać z polecenia grub-mkpasswd-pbkdf2 [-c liczba_ iteracji]. Planuje się w niedługim czasie zintegrować część tego podprojektu z GRUBem. Instrukcje pozwalające na wczytanie sterownika VESA to: insmod video oraz insmod vbe. Podstawowymi i minimalnymi wymaganiami wobec menu graficznego są: możliwość ustawienia pliku graficznego jako tła. Jeden z tematów gra�cznych dla GRUB 2 Rysunek 2. możliwość wyświetlania tekstu przy pomocy określonej czcionki. Aby skorzystać z tego dobrodziejstwa. Generalnie wiele pracy zostało już wykonanej i całość nadaje się do eksperymentalnego użytkowania. Opracowane są już oczywiście formaty pliku tematów. Moduł gfxterm Rysunek 1. jednak nie oferuje on zbyt dużych możliwości – z drugiej jednak strony.mod. Tym sposobem. Aby skorzystać z szyfrowania haseł. Projekt był rozwijany przez Collina Bennetta jako część edycji Google Summer of Code z 2008 roku.cfg. Przykładowe tematy można zobaczyć na Rysunkach 1 i 2.gz).pcf. Używa on VideoSubsystem do renderowania grafiki. gdzie dysponujemy kartą graficzną. program przedstawi nam je w postaci zaszyfrowanej. wpis pierwszy może być wykonany przez dowolnego użytkownika.WARSZTATY stawie tej konfiguracji. Do tej pory jednak moduł ten nie został włączony do oficjalnej gałęzi GRUBa. Następnie. Konieczna jest załadowana przynajmniej jedna czcionka. którym jest user1. który jest dostarczany w pakiecie xfonts-unifont w dystrybucjach Debian i Ubuntu. Jeden z tematów gra�cznych dla GRUB 2 14 7/2010 . plików graficznych oraz plików czcionek. Drugim systemem. powinniśmy mieć linię password_pbkd2 user1 <ciąg wygenerowany przez powyższe narzędzie>. zamiast linii password user1 password1. który ma pełnić rolę graficznego terminala wyjściowego dla GRUBa 2. Docelowo ma to być konfigurowalny interfejs graficzny dla GRUB 2 służący do wyboru systemu z możliwością wyboru i dostosowania tematów graficznych. który musimy skonfigurować. Pozwala to na stosowanie go wszędzie tam. należy zmodyfikować odpowiednio plik konfiguracyjny grub. natomiast wpis drugi przez użytkownika user2 oraz przez superużytkownika. którą możemy wkleić do pliku konfiguracyjnego. Interesujący jest także moduł gfxterm. że skorzystamy z GNU Unifont (plik o nazwie unifont. Uwaga – hasła nie są szyfrowane i są przechowywane jako zwykły tekst. nie potrzebujemy obsługi 3D w bootloaderze. jest Font System. Czekamy jednak wciąż na ustabilizowanie się projektu. Generalnie podstawową sprawą jest skonfigurowanie VideoSubsystem działającego w oparciu o moduł video. aby można było wyświetlać tekst w gfxterm. możliwość manipulacji grafiką (pasek postępu upływu czasu). Załóżmy więc. Zmienić należy oczywiście słowo kluczowe password na password_pbkd2. zostaniemy zapytani o hasło. Lokalizacja tekstów również nie jest problemem dla gfxterm. Obecnie jednak mamy do dyspozycji jedynie sterownik VESA współpracujący właściwie z każdym układem graficznym. Kolejną rzeczą. którą należy oczywiście mieć zainstalowaną podczas konwertowania czcionek. Nie może być ładowany via grub. którą warto zrobić przed implementacją żądanej przez nas funkcjonalności.gz. co chcemy zrobić.cfg dodajemy oczywiście linijkę insmod font.org 15 .cfg. gdyby nie udało się uruchomić najwyższej rozdzielczości przy najwyższej głębi). czy przypadkiem niczego nie uszkodziliśmy.lpmagazine. } Listing 5.pcf. Aby więc przygotować czcionkę unifont. W pliku grub. będzie zupełnie nieprzydatne w głównej gałęzi GRUBa lub że ktoś nad tym już pracuje.pf2 --range=0x0-0x7f unifont. Jeżeli jednak zabierzemy Listing 3. które dotyczą naszego zakresu prac.95 GRUB posiada wsparcie dla LVM oraz RAID.800x600x32. Wspierany jest oczywiście każdy format czcionki. to: <szerokość>x<wysokość>[x<głębokość>][.31 0dd89f21eac2 www. że to. że podano kilka trybów wyświetlania (na wypadek. Kon�guracja dla LVM menuentry "Linux on LVM" { insmod lvm set root=(MainGroup-linuxLV) linuxLV LVM i RAID linux /vmlinuz root=/dev/mapper/MainGroupinitrd /initrd.pf2 --range=0x00000x0241.< inny tryb>]. Listingi 4 i 5 przedstawiają odpowiednio przykładową konfigurację dla LVM oraz RAID. dopisujemy linię insmod raid. podczas gdy chcemy nieco zmodyfikować parsowanie pliku konfiguracyjnego. do oficjalnego kodu.gz. Kod GRUBa może jednak wydać się skomplikowany. jak w Linuksie – dla urządzenia /dev/ md2.img-2.img.pf2 unifont.conf. wieloetapowy. Jest to jednak stosunkowo duży projekt. nie będzie interesować nas sam proces ładowania GRUBa do pamięci z sektora MBR dysku twardego. Format danych. Spójrzmy na Listing 3.6. Numeracja macierzy RAID w GRUBie również wygląda tak samo. w przypadku modułu raid. jak nie trudno się domyślić. a po implementacji sprawdzić. jak będzie wyglądało polecenie. gdy zechcemy wybrać kilka przedziałów: grub-mkfont --output=unifont. Jeżeli partycja zawierająca dane GRUBa jest częścią LVM. w jakim on działa. Kon�guracja dla RAID insmod raid set root=(md0) search --fs-uuid --set 155c8fdb-607f-45a4-bd6dmenuentry "Linux" { insmod raid set root=(md0) 0dd89f21eac2 search --fs-uuid --set 155c8fdb-607f-45a4-bd6dlinux /vmlinuz-2.gz. który wspiera biblioteka libfreetype.1024x terminal_output gfxterm 768.6.GRand Unified Bootloader 2 Jeżeli chcemy ręcznie skonwertować czcionkę. identyfikatorem będzie (md2). przy pomocy której określimy rozdzielczość ekranu użytą do wyświetlania terminala. Widzimy. Development GRUB 2 jest projektem open source. Jeżeli planujemy upublicznić swoje zmiany. ale na pewno nie jest trudny do przeprowadzenia. które odpowiadają za to. Jeżeli okaże się. więc każdy może dokonywać w nim zmian. które przypisujemy do tej zmiennej. ze względu na środowisko. wydajemy polecenie: grub-mkfont -output=unifont. należy zawsze pracować na jego najnowszej wersji. Obecnie mamy do dyspozycji jedną zmienną. Kon�guracja dla gfxterm insmod gfxterm set gfxmode="1024x768x32. Parametry w nawiasach kwadratowych mogą oczywiście być pominięte.96 poprawiono wiele błędów z tym związanych. gdzie przedstawiono przykładową konfigurację z pliku grub. wydajemy polecenie: grub-mkfont --output=<docelowy plik> -range=<w systemie hex> <plik źródłowy>. polecenie przybierze następującą postać: grub-mkfont --output=ascii. Analogicznie.cfg dodać linię insmod lvm.640x480x32. Identyfikatory wolumenów LVM zapisywana jest w formacie (grupa_wolumenu-nazwa_wolumenu).31 root=LABEL=root ro } initrd /initrd.0x2500-0x259f unifont. Moduły. która pozwoli na obsługę czcionek. a jedynie fragmentów. Jego repozytorium bardzo łatwo można znaleźć w sieci. Ustawiono także terminal wyjściowy na gfxterm. jak działają powiązane z nią elementy. Obsługiwane rozdzielczości zależą od sterownika. który nie wymaga pełnego zrozumienia całego kodu. W wersji 1. Przykładowo. oczekując włączenia ich do głównej gałęzi. a następnie wczytamy plik.pcf. Gdy zachcemy dokonać implementacji danej funkcjonalności. wprowadzając instrukcję loadfont /boot/ grub/unifont.pf2. to po prostu szkoda naszego czasu. Z takim samym formatem mamy do czynienia w przypadku /dev/ mapper.0x2190-0x21FF. moduł lvm musi być częścią core. Przyjrzyjmy się jeszcze. nazwano odpowiednio lvm oraz raid.640x480" Listing 4. Aby skonwertować tylko znaki ASCII. należy na początku wpisu w pliku grub. jak to się zwykło zapisywać. będzie zgłoszenie pomysłu na liście mailingowej.800x600. Proces konfiguracji tego modułu może być jeszcze długi.img Od wersji 1. Aby włączyć obsługę LVM. Wróćmy do konfiguracji samego gfxterm. Tak przygotowany plik można wczytać już do GRUBa. warto sprawdzić najpierw.pcf. a końcowy efekt będzie zadowalający. Następnie należy zamontować jeszcze trzy rzeczy.lz filename=/home/test. przy pomocy trzech poleceń: sudo mount --bind /dev /mnt/dev oraz sudo mount --bind /proc /mnt/proc i ostatecznie sudo mount --bind /sys /mnt/sys. Bywa tak najczęściej podczas instalacji Windowsa. płyty LiveCD z Ubuntu czy np. że GRUB 2 posiada wsparcie dla skryptów LUA. Gdy wszystko jest w porządku. wykonywanie różnych operacji etc. ale także należy poszukać w nim defektów. Bootowanie obrazu ISO Niektóre obrazy płyt zapisane w formacie ISO mogą zostać wczytane przez GRUBa. W przypadku błędów należy wydać polecenie grub-install --recheck /dev/sda. że ścieżki przy słowie kluczowym linux oraz initrd muszą odpowiadać ścieżkom w obrazie ISO. można przesłać zmianę w formacie diff do twórców GRUBa oraz opisać zmiany. że tracimy GRUBa. Taką dystrybucją jest np.WARSZTATY się już do pracy. Więcej szczegółów znaleźć można w dokumentacji. jego deweloperzy wpadli na kolejne. który pozwala na załadowanie jedynego słusznego systemu i nic z tym nie możemy zrobić. niż jej poprzedniczka. gdyż jest to temat na osobny artykuł. mimo uprzedniego zastoju. jak nietrudno się domyślić. opensource (od 2000 roku). koniecznie trzeba wspomnieć o tym. Kontakt z autorem: roger. czy napisany kod wykonuje swoje zadanie.com linux (loop)/boot/vmlinuz boot=live iso-scan/ initrd (loop)/boot/initrd. mimo że zadawałoby się.iso. na dysku pierwszym. Należy także zapoznać się z licencjonowaniem projektu (obecnie jest to GPLv3). "root").iso noprompt } 16 7/2010 . Funkcja zwraca wartości grub_errno oraz err_msg. Po tym procesie. koniecznie należy przejść do testowania. na którym chcemy mieć zainstalowanego GRUBa. który przedstawiono na Listingu 6. Oznacza to testowanie w różnych środowiskach. mając już zainstalowanego Linuksa – Windows bez pytania nadpisuje sektor MBR własnym bootloaderem. Następnie odmontowujemy wszystko. ale skupimy się na tym. Ubuntu LiveCD. możemy przystąpić do opublikowania zmiany. wciskając kombinację klawiszy CTRL+D. pewnie nawet całą książkę. Bez problemu możemy więc wykonać polecenie update-grub oraz grub-install /dev/sda. SystemRescueCD. jeżeli styl jest jednolity – łatwiej przeczytać i zrozumieć taki kod. przykładowo: grub. w tym – możliwość instalacji na większej liczbie architektur sprzętowych.setenv("aa". Po zakończeniu fazy implementacji. jeżeli chcemy dostać się do naszego Linuksa? Najprościej skorzystać z płyty z dystrybucją typu LiveCD. możemy przejść do podmontowanego środowiska poleceniem: sudo chroot /mnt. ciekawe pomysły. na parListing 6. Najpierw jednak należy jeszcze się upewnić. z którego wykonujemy bootowanie. Gdy takowy plik już posiadamy. co zamontowaliśmy przy pomocy polecenia umount. gdzie sdaX jest oczywiście identyfikatorem wspomnianej partycji. np. określają nam błędy. Co w tej sytuacji możemy zrobić.getenv("prefix". lub ustawić te wartości. Aby wykonać polecenie GRUBa. która jednocześnie oferuje narzędzie chroot. Wartości te. że znajduje się on w katalogu /home/test. np. Są to np. Wersja druga daje nam teraz z pewnością znacznie większe możliwości. Możemy również pobrać wartości zmiennych środowiskowych. gdzie sda oznacza dysk twardy. należy przekazać je w funkcji jako zwykły string. Podsumowanie Na przestrzeni ostatnich lat GRUB stał się bardzo rozbudowanym projektem.iso ROGER ZACHARCZYK Pracuje jako programista gier komputerowych. które bez wątpienia przekładają się na jakość. Odzyskiwanie GRUBa LUA Gdy jesteśmy przy temacie programowania. Załóżmy (na potrzeby artykułu). Nie będziemy tu omawiać podstaw tego języka.run("ls / "). iż rozwój GRUBa dobrnął do końca. Należy nie tylko sprawdzić. grub.1). jeżeli grub_errno jest różne od zera. nasza zmiana powinna zostać włączona do oficjalnej gałęzi. Plik w formacie ISO musi być uprzednio zapisany na dysku twardym podłączonym do komputera. Parted Magic CD etc. Odczyt pliku ISO menuentry "ISO Testing" { Zdarza się. "Hello").1)/home/test. Partycję w pliku konfiguracyjnym oznaczymy więc jako (hd0. Zainteresowania: języki programowania. jakie wystąpiły (jeżeli wystąpiły) przy wykonywaniu przekazanego polecenia. które zaaplikowaliśmy. że jest ona kompatybilna z najnowszą wersją GRUBa. Od teraz jesteśmy w naszym uprzednio zainstalowanym systemie. i możemy zrestartować komputer. Opuszczenie środowiska wykonujemy. można przystąpić do dodania wpisu w grub. co bezpośrednio dotyczy naszego bootloadera. zapoznajmy się koniecznie ze stylem pisania kodu. Jeżeli również tutaj nie stwierdzimy żadnych nieprawidłowości. Po jej uruchomieniu i podmontowaniu partycji głównej przy pomocy polecenia sudo mount /dev/sdaX /mnt. studiuje na czwartym roku informatyki na wydziale Informatyki i Zarządzania Politechniki Wrocławskiej. grub. loopback loop (hd0. Po tych czynnościach wstępnych. Zauważmy. webserwisy.cfg. W ogólnodostępnych projektach dobrze jest. tycji sda1. do którego utraciliśmy dostęp. Zatem.zacharczyk@gmail. Import programów na zamówienie. System jest zintegrowany z OpenOffice. Magazyn. z o. MS Office i programami ERP. Pracuje on na platformach Linux oraz Windows i należy do najnowocześniejszych aplikacji webowych działających w technologii AJAX. Wychowanie Fizyczne. Logistyka oraz Rachunkowość. www.o. Sprzedaż i dystrybucja oprogramowania komputerowego. 22 427 36 52 . Chcesz kupić oprogramowanie i nie możesz znaleźć polskiego dostawcy? Skontaktuj się z nami – sprowadzimy nawet pojedyncze licencje.isof. Bydgoszcz.o.betasoft.Systemy bankowe.in. Fizjoterapia (NOWOŚĆ. Sprzedaż.OprogramowanieKomputerowe. Ponad 200 producentów w standardowej ofercie. Jednym z naszych autorskich rozwiązań jest system eDokumenty realizujący wymagania DMS i CRM.pl tel. Architektura Wnętrz (NOWOŚĆ) Studia na odległość e-learning (Informatyka II stopnia) Kompleks sportowy w Łodzi (hala. System ISOF jest udostępniany klientom w trybie SaaS lub licencji.wsinf.edu. Opatówek. Pedagogika. takie moduły jak CRM.pl. basen. DMS. Skontaktuj się z nami: linux@software. siłownia. Ekonomia. sauna).pl TTS Company Sp. z o.pl BetaSoft Sp. www.edokumenty.pl OFERTA SKIEROWANA DO FIRM Wyślij do nas: logo firmy. www. dane kontaktowe i informacje o firmie. oferuje nowoczesne oprogramowanie do obsługi firm. Pracuje na platformie Linux i zawiera m. Obok systemów informatycznych dla banków.com. Wydziały zamiejscowe: Włocawek. Artystyczna Grafika Komputerowa. ISOF HEUTHES istnieje na rynku od 1989 r. Reklama przez 12 kolejnych numerów tylko za 600 PLN + VAT.eu Wyższa Szkoła Informatyki Informatyka. http://www. http://www. aż przeniesie nas do widoku edycji. 18 7/2010 . QHostAddress QHostInfo QLocalServer QLocalSocket QNetworkAccessManager QNetworkAddressEntry QNetworkCacheMetaData QNetworkCookie QNetworkCookieJar QNetworkDiskCache QNetworkInterface QNetworkProxy QNetworkProxy QNetworkProxyQuery QnetworkReply QNetworkAccessManager QNetworkRequest QSslCertificate QSslCipher QSslConfiguration QSslError QSslKey QSslSocket QTcpServer QTcpSocket Przygotowanie nowego projektu Qt Odpalamy QtCreator pod Ubuntu. Moduł QtNetwork – klient FTP Przedstawienie możliwości modułu QtNetwork na podstawie aplikacji do obsługi protokołu FTP W części drugiej skoncentrujemy się głównie na module QtNetwork i jego możliwościach. Programowanie w Qt 4. jak ma wyglądać nasza aplikacja.WARSZTATY Część II. W kolejnym oknie zaznaczamy moduł QNetwork i akceptujemy do momentu.ui. W miejscu menu dodajemy Plik i podmenu Rysunek 1. Dzisiaj skoncentrujemy się właśnie na tej klasie. abyś rozrysował sobie na kartce/komputerze szkic graficznego interfejsu użytkownika jak na Rysunku 1. M • • • • • • • • • • • • • • • • • • • • • • • • • • • • • oduł QtNetwork jest zbiorem klas ułatwiających programowanie aplikacji sieciowych. Moduł ten zawiera następujące klasy: • • QUdpSocket QUrlInfo QAbstractNetworkCache QAbstractSocket QAuthenticator QFtp – implementacja obsługi protokołu FTP. co chcemy zaprogramować. a następnie z menu Plik/Nowy plik lub projekt (ctrl+N) wybieramy Aplikacja Gui Qt4 i podajemy nazwę i położenie źródła projektu (niech nazwa projektu będzie ProstyKlientFTP). Planowanie GUI – szkic gra�cznego interfejsu użytkownika. dobrze byłoby teraz zastanowić się dokładnie. Dlatego też proponuję.6 pod Ubuntu. Utworzyliśmy projekt. Stworzymy od podstaw nową aplikację. która będzie prostym klientem FTP. Projektowanie GUI w Qt Z katalogu Formularze uruchamiamy plik mainwindow. Odpowiedź jest prosta. który znajduje się zaraz pod menu.Część II.#include "QFileSystemModel" my na szerokość 230px – we właściwościach obiek. Pole lineEditHost ustawia. Na formatkę z Display Widgets przenosimy Label. PL. gdy będzie nad nimi. aby do. wera oraz z zawartością dysku lokalnego. pól. Dobrze. Zmieniłem również nazwy tych obiektów na treeViewSerwer i treeViewLokalnyDysk. lineEditHaslo).lpmagazine. dlaczego najpierw procje (poprzedni numer można pobrać ze strony: http: jektujemy GUI.#include "QDebug" tHaslo ustawiamy na 100px. Możemy również usunąć niepotrzebny Main. Programowanie w Qt 4. Dla przy.#include "mainwindow. przycisków.zanim powstanie odpowiedni kod obsługujący całe ToolBar. Na samym końcu dodajemy 2 buttony Push Button z Buttons.h" tLogin.tlić listę katalogów z plikami. dodajemy krótki kod jak niamy jego postać na Rączka wskazująca we właści. że możemy dodać jeszcze jeden element bardziej ozdobny i rozgraniczający pola tekstowe od drzew.na Listingu 1. Ja ustawiłem te pola na 451px szerokości. zmie. W tym ce. wiedzieć się.Możemy teraz uruchomić aplikację Budowanie/Uruści programowania w Qt pod Ubuntu. bo w sumie to niewiele zostało – przeramy opcję Usuń pasek narzędzi MainToolBar. Widget ten Rysunek 2. Zmienimy również za.cpp i dodajemy bibliotekę stowe Line Edit z Input Widgets i kolejno zmieniamy QFileSystemModel.dodajemy nad dodanymi obiektami typu Tree View.• QDir::Files – powoduje wyświetlanie plików. wościach obiektu przy etykiecie cursor (odnajdujemy Warto zwrócić uwagę na metodę setFilter(). proszę zapoznaj chom lub szybciej skrót klawiaturowy Ctrl+r. nież nazwy obiektów tych buttonów na pushButtonTeraz musimy sprawić. a mianowicie Horizontal Line w Display Widgets. Następnie dodajemy trzy pola tek. Efekt nasię z poprzednim numerem magazynu Linux+. Moduł QtNetwork – klient FTP Rozłącz i Zakończ z przypisanym skrótem klawiaturo. ustawiając we właściwościach echoMode na Password. QDebug: nazwy tych obiektów np.lpmagazine.org 19 .pomocne troszkę później. a później zabieramy się za funkcjonal//download.6 pod Ubuntu. jak wykonać powyżej opisane operaNiektórzy mogą się dziwić. poprzez kliknięcie prawym klawiszem na polu i wybraniu z menu kontekstowe. lu dodajemy dwie listy typu Tree View z Item Views. aby w prawym oknie wyświePolacz i pushButtonRozlacz.#include "QMessageBox" tu odszukujemy etykietę geomtry i zmieniamy wartość width (Szerokość). list.za tworzenie okien. Ustawiamy rów.#include "ui_mainwindow. Myślę. w tym celu po linijce zachowanie kursora myszki. Pola lineEditLogin i lineEdi. login i hasło. cież Qt Creator (lub Qt Designer) ładnie nas wyręczył Następnym krokiem będzie utworzenie pól teksto. wym Ctrl+Q. w której na liście.org/pl/2010/Linux_06_2010_ ność. że warto dokońpomnienia klikamy prawym klawiszem myszy i wybie.Otwieramy plik mainwindow. dodajmy od razu trzy i nazwijmy je kolejno Ustawiamy lokalny system plików Host.ustawiliśmy zachowanie modelu listy: nić troszkę pole lineEditHasło. Dodamy również etykiety tekstowe dla pól host.GUI – utwierdzi nas to w przekonaniu. Widok GUI klienta FTP w akcji www. QMessageBox. jest zaraz po font).dużo.szych prac powinien być podobny jak na Rysunku 2.pdf). lineEdi. Login i Hasło. a to już jest wych host.wierającej ui->setupUi(this).czyć program.• QDir::AllDirs – powoduje wyświetlanie wszystkich my się za tworzenie dwóch okien z zawartością serkatalogów z naszego systemu. Jeśli jeszcze nie czytałeś pierwszej czę. Możemy jeszcze zmie. za chwilkę ustawimy lokalny system pliłącz. ków w prawej liście TreeViewLokalnyDysk. login i hasło oraz buttonów połącz i roz. lepiej widzieć już coś. Teraz zabierze.h" go opcji zmień nazwę obiektu (lineEditHost. Zmieniamy Dodatkowe biblioteki QMessageBox i QDebug będą ich nazwy na Połącz oraz Rozłącz. ui. Aby nasza lista wyglądała ładniej.. możemy ustawić domyślnie szerokości kolumn. QDir::NoDotAndDotDot – nie będą wyświetlane katalog „. że pierwsza kolumna będzie najdłuższa względem pozostałych. Rysunek 3.. w którym wybieramy sygnał clicked(). a w drugim oknie klikamy Edycja.235).235) spowoduje. Kolumny liczymy od 0.” i „. Ustawiamy lokalny system plików w liście TreeViewLokalnyDysk // ustawiamy okno z lokalnym systemem plików QFileSystemModel *treeModel = new QFileSystemModel(this).. Wychodzimy z trybu Zmodyfikuj sygnały do trybu Zmodyfikuj Widżety (lub klawisz [F3]). powinniśmy otrzymać podobny wynik jak na Rysunku 3. Następnie klikamy ikonkę Zmodyfikuj sygnały lub wciskamy klawisz [F4] (później.50). W górnym oknie dodajemy slot o nazwie connectFTP(). Na końcu ustawiliśmy button Rozłącz na nieaktywny. aby wyjść z tego trybu. setColumnWidth(0. czyli wybieramy sygnał clicked(). Zwróć również uwagę na metodę Qdir::homePath(). Listing 1. a następnie dodajemy nowy slot disconnectFTP(). Powinna pojawić się graficzna prezentacja połączenia sygnału i slotu tak jak na Rysunku 4. wystarczy wcisnąć klawisz [F3]). ui->treeViewLokalnyDysk->setColumnWidth(0. Identycznie postępujemy w przypadku drugiego buttona Rozłącz.” QDir::NoSymLinks Nawiązywanie połączenia z FTP Metoda setModel() ustawia zdefiniowany wcześniej model na liście TreeViewLokalnyDysk . Gdy uruchomimy naszą aplikację. ui->treeViewLokalnyDysk->setColumnWidth(1. i tak np. Zaznaczamy lewym klawiszem myszy button Połącz i przeciągamy na wolne miejsce formatki (pokaże się strzałka). ui->pushButtonRozlacz->setEnabled(false). QModelIndex index = treeModel->setRootPath(QDir::homePath()). ui->treeViewLokalnyDysk->setModel(treeModel). która to ustawi główny domowy katalog. ui->treeViewLokalnyDysk->scrollTo(index). Lokalny system plików 20 7/2010 . Wybieramy slot i akceptujemy..WARSZTATY • • – nie będą wyświetlane pliki z dowiązaniami (symlinks). ui->treeViewLokalnyDysk->setColumnWidth(2.40). czyli w naszym przypadku /home/. Przejdźmy do naszej formatki mainwindow. Wyświetli się okno. Zajmiemy się teraz nawiązaniem połączenia z FTP na standardowym porcie 21. Podobne ustawienia wykonujemy odnośnie kolejnych kolumn. treeModel->setFilter(QDir::AllDirs | QDir::Files | QDir::NoSymLinks | QDir::NoDotAndDotDot ). QMessageBox::warning(this. ui->pushButtonPolacz->setEnabled(true). break. qDebug() << "FTP: Szukanie hosta". "FTP". } ftp->login(ui->lineEditLogin->text(). this. ftp->connectToHost(ui->lineEditHost->text().lpmagazine. Metoda connectFTP() void MainWindow::connectFTP() { ftp = new QFtp(). "Blad polaczenia z hostem "+ui->lineEditHost- >text()+"!"). case QFtp::Connected: break. case QFtp::Closing: qDebug() << "FTP: Rozlaczono z hostem".org 21 . Programowanie w Qt 4. Moduł QtNetwork – klient FTP Listing 2. qDebug() << "FTP: W trakcie polaczenia". ui->pushButtonPolacz->setEnabled(false). ui->lineEditHaslo->text()). } } www. if(ftp->currentCommand() == QFtp::ConnectionRefused) { ui->statusBar->showMessage("Blad polaczenia z hostem "+ui->lineEditHost->text()). QMessageBox::information(this. 21).6 pod Ubuntu. ui->statusBar->showMessage("Rozlaczono z hostem "+ui->lineEditHost->text()). connect(ftp. ui->pushButtonRozlacz->setEnabled(true). default: break. Listing 3. ui->pushButtonRozlacz->setEnabled(false). "Rozlaczono z hostem "+ui->lineEditHost- qDebug() << "FTP: Nieznany blad!". break. >text()+"!").Część II. Metoda ftpStateChanged(int state) void MainWindow::ftpStateChanged(int state) { switch(state) { case QFtp::Unconnected: qDebug() << "FTP: Brak polaczenia z hostem "+ui->lineEditHost->text(). case QFtp::HostLookup: break. } break. SLOT(ftpStateChanged(int))). case QFtp::LoggedIn: qDebug() << "FTP: Zalogowany prawidlowo". "FTP". SIGNAL(stateChanged(int)). qDebug() << "FTP: Polaczono z hostem". ui->statusBar->showMessage("Polaczono z hostem "+ui->lineEditHost->text()). case QFtp::Connecting: break. Metoda ta jest bardzo prosta i właściwie nie wymaga większego tłumaczenia. odczytując login i hasło z pól lineEditLogin i lineEditHaslo. • • • • • • QFtp::Unconnected QFtp::HostLookup QFtp::Connected QFtp::LoggedIn QFtp::Closing QFtp::Connecting Musimy również zdefiniować wskaźnik ftp na klasę QFtp. lepiej to wytłumaczyć. Użyliśmy instrukcji warunkowej switch. w tym miejscu myślę. Dlatego też musieliśmy zdefiniować sygnał stateChanged(int) oraz nowy slot ftpStateChanged(int). }. Wróćmy zatem do wiersza drugiego. aby poznać stany połączenia z FTP. lineEditLogin . Zależy nam na tym. W trzecim wierszu łączymy się z hostem. powinniśmy otrzymać podobne informacje: Listing 4. Metoda disconnectFTP() void MainWindow::disconnectFTP() { } ftp->close(). np. Rysunek 4. QtCreator podświetli nam dodany wiersz ze względu na to. void disconnectFTP().cpp dodajemy metodę connectFTP(). że nie może odnaleźć typu QFtp (QFtp is not a type name). najpierw Qftp::HostLookup .cpp dodajemy metodę ftpStateChanged(int state) jak na Listingu 3. private: Ui::MainWindow *ui. pobierając adres z pola lineEditHost. Ostatni wiersz loguje nas do ftp. Otwieramy zatem plik mainwindow. a będzie wpisany błędny host.h i dodajemy w sekcji private slots nowy slot pod nazwą void ftpStateChanged(int). w którym to odbywa się dosyć ważna strategia naszego połączenia. Dodajemy zatem w sekcji private wiersz: QFtp *ftp.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QFtp> namespace Ui { } class MainWindow. to wtedy będą dwa stany. Następnie w pliku mainwindow. void disconnectFTP(). W pierwszym wierszu tworzymy nowy obiekt typu QFtp. lineEditHaslo tak jak na Listingu 2. która będzie pobierać dane z pól lineEditHost . class MainWindow : public QMainWindow { public: Q_OBJECT MainWindow(QWidget *parent = 0). W drugim wierszu z kolei definiujemy sygnał i slot dla obiektu ftp (o tym za chwilkę). że jest to bardzo wygodne. void ftpStateChanged(int).WARSZTATY Otwieramy plik mainwindow. Następnie w pliku mainwindow. a później Qftp::Unconnected . protected: void changeEvent(QEvent *e). Kompletny plik mainwindow. private slots: void connectFTP(). Jak pewnie już zauważyliście. pod #include <QmainWindow>. ~MainWindow(). jest 6 stanów: Listing 5. wiersz: #include <QFtp> W momencie gdy w programie klikniemy button Połącz. Więc dodajemy w sekcji include. Ale gdyby coś miałoby być niejasne. Wizualizacja połączenia sygnału i slotu #endif // MAINWINDOW_H 22 7/2010 . Możemy to bardzo ładnie zaobserwować w zakładce Komunikaty aplikacji w QtCreator.h i dodajemy następujące trzy wiersze: private slots: void connectFTP(). QFtp *ftp. ui->pushButtonRozlacz->setEnabled(false). 21). Kompletny plik mainwindow. } MainWindow::~MainWindow() { } delete ui.org 23 . switch (e->type()) { case QEvent::LanguageChange: ui->retranslateUi(this).lpmagazine.h" #include "QMessageBox" #include "QDebug" #include "QFileSystemModel" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent). QModelIndex index = treeModel->setRootPath(QDir::homePath()). ui->treeViewLokalnyDysk->setColumnWidth(1.235). ui(new Ui::MainWindow) ui->setupUi(this). break. ui->treeViewLokalnyDysk->setModel(treeModel). Moduł QtNetwork – klient FTP Listing 6a. // ustawiamy okno z lokalnym systemem plików { QFileSystemModel *treeModel = new QFileSystemModel(this). Programowanie w Qt 4. void MainWindow::changeEvent(QEvent *e) { QMainWindow::changeEvent(e). this. } ftp->login(ui->lineEditLogin->text(). void MainWindow::disconnectFTP() { www. ui->lineEditHaslo->text()).h" #include "ui_mainwindow. ui->treeViewLokalnyDysk->scrollTo(index). ftp->connectToHost(ui->lineEditHost->text().6 pod Ubuntu. default: } } void MainWindow::connectFTP() { ftp = new QFtp().cpp #include "mainwindow. connect(ftp. break. SIGNAL(stateChanged(int)). ui->treeViewLokalnyDysk->setColumnWidth(2. treeModel->setFilter(QDir::AllDirs | QDir::Files | QDir::NoSymLinks | QDir::NoDotAndDotDot ).50). SLOT(ftpStateChanged(int))).40).Część II. ui->treeViewLokalnyDysk->setColumnWidth(0. książka wersji online – Introduction to Design Patterns in C++ with Qt4 http://www. case QFtp::Closing: qDebug() << "FTP: Rozlaczono z hostem".cas. break. "Blad polaczenia z hostem "+ui->lineEditHost- >text()+"!").pdf-search-engine. } break. >text()+"!"). "FTP". break. qDebug() << "FTP: Szukanie hosta".nokia. ui->pushButtonRozlacz->setEnabled(true). "Rozlaczono z hostem "+ui->lineEditHost- qDebug() << "FTP: Nieznany blad!". if(ftp->currentCommand() == QFtp::ConnectionRefused) { ui->statusBar->showMessage("Blad polaczenia z hostem "+ui->lineEditHost->text()).6/index. ui->statusBar->showMessage("Polaczono z hostem "+ui->lineEditHost->text()). case QFtp::LoggedIn: qDebug() << "FTP: Zalogowany prawidlowo". qDebug() << "FTP: W trakcie polaczenia". QMessageBox::warning(this.com/4. case QFtp::HostLookup: break.suffolk.cpp } ftp->close().6/tutorials. ui->pushButtonPolacz->setEnabled(false).com/qt4-pdf. void MainWindow::ftpStateChanged(int state) { switch(state) { case QFtp::Unconnected: qDebug() << "FTP: Brak polaczenia z hostem "+ui->lineEditHost->text(). case QFtp::Connecting: break. ui->pushButtonPolacz->setEnabled(true).html – różne przydatne pliki w pdf dotyczące biblioteki Qt 24 7/2010 . } } W Sieci • • • • • http://qt. "FTP".html – przykładowe tutoriale http://cartan.com – serwis www biblioteki Qt http://qt.com/doc/4. qDebug() << "FTP: Polaczono z hostem".nokia. QMessageBox::information(this. ui->statusBar->showMessage("Rozlaczono z hostem "+ui->lineEditHost->text()).WARSZTATY Listing 6b.qt. default: break. ui->pushButtonRozlacz->setEnabled(false).nokia.html – dokumentacja biblioteki Qt http://doc. case QFtp::Connected: break. Kompletny plik mainwindow.edu/oopdocbook/opensource/ . qt.Część II. Slackware. Można to sprawdzić dzięki metodzie currentCommand() i QFtp:: ConnectionRefused. jaką jest QtDebug(). Czyli sprawdzamy obiekt ftp: if(ftp->currentCommand() == QFtp::ConnectionRefused) Nie jest to jeszcze kompletna aplikacja klienta FTP. że takie połączenie jest niemożliwe. że zainteresowałem Cię do tego stopnia.com W tym momencie możemy dostrzec bardzo przydatną funkcję. prawda? No dobrze. Podsumowanie Proste. Metoda ta wywołuje akcję close(). ŁUKASZ KLEJNBERG Jest właścicielem firmy Ideal Solutions zajmującej się projektowaniem aplikacji internetowych i komputerowych. ale niech to będzie tajemnica.org 25 . co chcemy. Dodamy teraz jeszcze jedną metodę o nazwie disconnectFTP(). gdyż to ona spowodowała wyświetlenie tych komunikatów w oknie Komunikaty aplikacji. Pragnę również podziękować kilku osobom za sugestie odnośnie ostatniego artykułu. Oczywiście zostanie jeszcze wywołane okienko dialogowe QMessageBox typu warning. usuwania itp. że zostało rozpoznane.nokiaaa. W następnej części artykułu zajmiemy się rozbudowywaniem tej aplikacji o możliwość kopiowania. Zwróć uwagę na Rysunku 5 na komunikat w statusBar.lpmagazine. Kontakt z autorem: lukasz. Programowanie w Qt 4.klejnberg@idealsolutions. ale jak to jest. Także od 2000 roku pracuje nieustannie na systemach Linux: Fedora. www. Moduł QtNetwork – klient FTP Rysunek 5. Metodę tę dodajemy pod metodą connectFTP() tak jak na Listingu 4. Pamiętaj o tej funkcji. Wyświetli się również okno z informacją o rozłączeniu z hostem. którą wcześniej zdefiniowaliśmy w sekcji private slots w pliku mainwindow. że sam zaczniesz już dzisiaj usprawniać Prostego klienta FTP. Ustawiliśmy go przy pomocy: ui->statusBar->showMessage("Blad polaczenia z hostem "+ui->lineEditHost->text()). a ponadto dzięki slotowi ftpStateChanged(int) zdefiniowanemu w metodzie connectFTP() wyświetlą się dodatkowe informacje w Komunikatach aplikacji oraz zostanie zablokowany button Rozłącz. może nieraz zaoszczędzić Ci godziny pracy. a aktywuje się Połącz. Myślę.h. W zawodzie programisty pracuje od 2000 roku. Komputerami zajmuje się od roku 1989. Zajmiemy się również nowym ciekawym tematem. Debian i Ubuntu.6 pod Ubuntu. w którym to otrzymamy komunikat podobny jak na Rysunku 5. Na koniec zapoznaj się z Listingami 5 i 6. QmessageBox typu warning FTP: Szukanie hosta FTP: Brak polaczenia z hostem ftp.pl i wywołujemy w tym warunku to. wskazujemy archiwum zawierające moduł sklepowy (plik ZIP). Na kolejnym ekranie będziemy mogli wprowadzić nazwę linka oraz. Wordpressa oraz Drupala. Jedyne. W tym celu można skorzystać z jednej z opcji służącej do zarządzania systemami menu (na przykład Menus > Main Menu). VirtueMart zaproponuje nam wprowadzenie do bazy przykładowych danych. gdyż – jak przekonamy się za moment – VirtueMart rzeczywiście oferuje bogaty zestaw opcji. Po dodaniu nowej pozycji (New) należy wybrać z listy Select Menu Item Type polecenie Internal Link > VirtueMart. Po paru sekundach zostaniemy przeniesieni do panelu administracyjnego sklepu. skonfigurowania jej i utworzenia katalogu produktów. Kliknijmy więc Install Sample Data. Ze względu na mnogość dostępnych rozwiązań przedstawione zostaną tylko najlepsze z nich. Po zatwierdzeniu ustawień przyciskiem Save lub Apply na stronie głównej witryny pojawi się odnośnik do skle- 26 7/2010 . że inne systemy zarządzania dokumentami. gdyż właśnie to rozszerzenie jest uznawane za najlepszą wtyczkę służącą do obsługi handlu przez Internet. Po zalogowaniu się na Zaplecze przechodzimy do Menedżera rozszerzeń (Extensions > Install/Uninstall). Pozwala on na zarządzanie wszystkimi ustawieniami VirtueMart. Dzięki rozszerzeniom do popularnych CMS-ów rozpoczęcie handlu w sieci ograniczy się do skopiowania na serwer odpowiedniej wtyczki. jak i na świecie. Dotyczy to także kwestii związanych z polonizacją wtyczki. zarówno w Polsce. Musimy więc rozpakować archiwum pobrane przez nas ze strony domowej VirtueMart. Nie warto polemizować z tą opinią. to zdecydowanie warto skorzystać z tej opcji. co musimy zrobić poza panelem. Wtyczki współpracują z wieloma mniej lub bardziej popularnymi systemami CMS. w razie potrzeby. Nie należy w tym czasie klikać żadnych przycisków w oknie przeglądarki. Następnie. Pod lupą znajdą się wtyczki zakupowe dla Joomli.ROZWIĄZANIA Sklep w CMS-ie Założenie internetowego sklepu na istniejącej witrynie nie musi oznaczać instalacji od podstaw kolejnej aplikacji oraz pracowitej integracji z wykorzystywanym dotychczas serwisem. Ale uwaga! Rozszerzenie znajduje się wewnątrz pakietu instalacyjnego. że w tekście zostaną wspomniane tylko rozwiązania dla najpopularniejszych CMS-ów. I nic dziwnego. a jego stabilność i brak błędów oraz luk sprawiają. Trzeba jednak pamiętać. To właśnie on powinien zostać zainstalowany na serwerze. także oferują podobne rozszerzenia.zip). Joomli. to umieszczenie na stronie głównej witryny opartej na systemie Joomla! linków do sklepu. jak każde inne rozszerzenie Joomli. Jeśli jest to nasz pierwszy kontakt z tym rozszerzeniem. Joomla! i VirtueMart Rozpocznijmy od niezwykle popularnej. VirtueMart instalujemy tak. Dostęp do ustawień sklepu uzyskamy za pośrednictwem menu Components. że stanowi on bezpieczne rozwiązanie dla osób chcących uzupełnić istniejącą instalację systemu Joomla! o sprawny sklep. Wewnątrz pakietu znajdziemy kolejny plik ZIP (com_virtuemart_*. A rtykuł ten ma stanowić przegląd takich właśnie wtyczek. zmienić jego położenie w systemach menu. To bogactwo dostępnych systemów portalowych powoduje. Użytkownicy tego CMS-a z pewnością słyszeli o VirtueMart. Ogromna popularność rozszerzenia powoduje ponadto. W przypadku instalacji na docelowym serwerze i w ramach istniejącego CMS-a lepszym rozwiązaniem okaże się przystąpienie do samodzielnego dodawania produktów (Go directly to the Shop). że w razie pojawienia się jakichkolwiek problemów z pewnością uda nam się znaleźć gdzieś w sieci sensowne propozycje ich rozwiązania. A potem będzie już można zacząć obsługiwanie pierwszych klientów. w ramce Upload Package File. które również mogą poszczycić się dużą liczbą instalacji. a jego instalację przeprowadziliśmy na potrzeby eksperymentów. Instalacja przykładowych danych może potrwać kilka chwil. oprócz polece. a także najnowszych zamówień. – katalogu produktów.nie Orders > List Order Status Type. zarządzając sklepu.zarządzania procesem sprzedaży – drugie. korzystaniem z serwerów otyczny.nie informacji o sklepie. Ostatnie z wymienio. któa także listami państw i walut. stawkator ma do dyspozycji kilka innych. Osobno wproinformacji dotyczących prawnych aspektów działania wadzamy dane producentów. zrealizowanych transakcji.lpmagazine. kategoriami przedmiotów oraz usług. rzystamy. Produktów nie dodajemy w sposób chakowników. Co ważne.skonałe i rozwinięte funkcje pozwalające na utrzymałowych preferencji związanych z logowaniem się użyt. także kilka innych pozycji. może on modyfikować opcje pobierania plików. ale także umożliwia przejęcie Panel administracyjny. Umożliwi to użytkownikowi szybkie przejście do dzy innymi opcja Edit store. w ramce Description łatwo zmiewego może wydać się początkowo zbyt przytłaczają. szyfrowaniem. Oczywizawiera wszystkich opcji konfiguracyjnych. utrudniając przy tym potencjalnym klientom proxy. a także dostaConfiguration. handlu internetowego wydaje się więc niezagrożona. gdyż to właśnie ona umożliwia wprowadzeW tym momencie pozostaje nam już tylko skonfigu. Od czego więc powinniśmy zacząć? Najważniejsze pozycje w menu Store zawierają między innymi dane opcje konfiguracyjne ukryte są pod linkiem Admin > sposobów płatności.VirtueMart ułatwia również znakomicie zarządzanie kacji kanałów RSS oraz bogatą paletę ustawień do. VirtueMart posiada dotueMart pozwala między nimi na określenie szczegó. bezpieczeństwa (SecuriPo skonfigurowaniu sklepu można przystąpić do ty) oraz sposobu wyświetlania stron sklepu (Site). funkcji pokazuje.Sklep w CMS-ie pu. choć bogaty w funkcje.Rysunek 1. Panel kontrolny posiada też dodatkowo osobną zakładkę Statistics.kontami kupujących.wia. jak wszechstronne narzędzie stanoBogate opcje konfiguracyjne to jedno. Zestaw znajdujących się tam ikon daje szybki dostęp do najważniejszych funkcji sklepu. ustawienia globalne (Global). klientów.dynczej liście (Orders > List Orders). zwłaszcza jeśli planujemy prowadzenie sprze. Ta krótka lista py.re konfiguruje sam użytkownik. Kolejne cy. publi. danych dotycząrowanie VirtueMart i wprowadzenie informacji o pro. VirtueMart tuż po zainstalowaniu www. Polecenie Summary wyświetla panel kontrolny. Na szczęrzeń przeznaczonych dla Joomli i służących do obsługi ście VirtueMart sprawdza się w obu przypadkach. jego nazwy. dania i realizacji zamówień dzielony jest na etapy.org 27 . Proces skłanim możliwe jest zarządzanie kontami użytkowników. nie kontroli nad procesem realizacji zamówień. za pomocą których mi podatkowymi. Możliwe jest dzielenie ich na grutyczących samego procesu sprzedaży. Vir.nimy domyślny opis sklepu na nasz własny. dostawców.nie porządku.cych kontaktu z firmą. wraz z jednoczesnym przypisywaniem rabatów. Część z nich poznaliśmy już wcześniej. które oferuje nam VirtueMart. jak i generować nia Configuration. a możliwość wi VirtueMart. co jest im potrzebne. Oprócz wymienionych zakładek administra. na której znajdziemy informacje dotyczące liczby produktów. Jego dominująca pozycja wśród rozsze. Wszystko to spradatne. Panel administracyjny komponentu sklepo. który otwierany jest po zalogowaniu się do zaplecza Joomli i przejściu do ustawień sklepu. Pozostałe znajdziemy w menu Store.cej waluty. że VirtueMart sprawdza się nie tylko w roli sklepu daży na skalę międzynarodową. Z pewnością z niej skonaszej oferty. Na kilku zakładkach zgromadzono tam wy produktów. podczas pracy z menu Admin. kart płatniczych.tworzenia katalogu produktów. a także wskazanie obowiązująduktach. publikowaniem recenzji. Obok panelu kontrolnego w menu Store znajduje się mię. Pozwala na to polecenych ustawień również mogą okazać się bardzo przy. Wszystkie zamówienia można przeglądać na pojeW podmenu Admin znajduje się. a także wyświetlaniem odnalezienie tego. Dzięki szczegółowe raporty (Reports > Reports).przy tym ewentualnymi kuponami rabatowymi. kopiując ręcznie wtyczkę do ce będzie najprawdopodobniej stanowił zdecydowanie struktury katalogów Wordpressa. dzać zaopatrzeniem i dostawami. a także na wykonywanie prostych operacji zwiąprzez Internet jest długa droga. współpracując z wielower. Dla użytkowniwtyczkę Wordpressa. Przejdziemy wówczas do panelu administracyjnego sklepu. W tym momencie w Kokpicie ujrzymy nowy moduł – Store. Należy ją aktywować. Po zalogowaniu się do Kokpi. Zawiera on o wiele mniej opcji niż opisane wcześniej rozszerzenie VirtueMart dla Joomli. Pojedynczy produkt może sieciowego pamiętnika. Wordpressa pojawi się pozycja WP Shopping Cart. Wtyczka pozwala także na załączanie plików w dowolnym formacie (na przykład dokumentów PDF zawierających specyfikacje lub instrukcje obsługi). pobieranych przez klientów. a następnie Dodaj nową. należy (po jego rozpakowaniu) umieścić w lokalizacji Zaletę opisywanej wtyczki stanowi możliwość wywp-content/plugins/. włącznie z zaopatrzeniem. na. którzy zamierzają uruchomić na blotu należy kliknąć Wtyczki.ma kontrahentami. Dzięki temu przedmiot zostaRysunek 2. to WP e-CommerMożemy ominąć ten etap. I to wspomagające sprzedaż przez sieć. Po wskazaniu spakowanej wtyczki kliknijmy In. Wordpress i WP e-Commerce tworzenie katalogu produktów podzielonych na kateMogłoby się wydawać. a także dodatkowe pola z informacjami. które pozwala na kompleksowe zarządzanie sprzedażą. jak każdą inną tychmiast po zainstalowaniu wtyczki. Domyślny wygląd sklepu opartego na Joomli i VirtueMart nie automatycznie wycofany ze 28 7/2010 . takie rozwiązanie okaże się zapewpobraniu pakietu instalacyjnego wp-e-commerce (plik ne atrakcyjne.zip) naciśnijmy link Wyślij na serdel internetowy na dużą skalę. poza tym wtyczka pozwala także na przypisanie go do konkretnych marek oraz na oznaczenie tagami. analizą stanów magazynowych i kontaktami z producentem. odmian.ków Wordpressa.ROZWIĄZANIA ście takie rozwiązanie nie zastępuje oprogramowania typu ERP. Wordpress poprosi nas o wprowadzenie danych mując ciągły kontakt z klientami oraz wydajnie zarząumożliwiających uzyskanie dostępu do serwera FTP. to nic nie stoi na przeszkodzie. Wtyczka ta jest bowiem stosunkowo uboga. Jeśli jednak zechce. Administrator sklepu okreTakże dla systemu Wordpress dostępne są wtyczki śla ponadto rynek. Ciekawą opcję stanowi możliwość określenia liczby sztuk produktu. Na stronie z ofertą mogą oczywiście znajdować się zdjęcia. stawek podatkowych. Każdy produkt może należeć do dowolnych kategorii. Po kliknięciu w Kokpicie Wtyczgodnego i szybkiego przygotowania efektownych ki. W tym celu należy kliknąć przycisk Products. Zawartość pliku ZIP zbyt proste rozwiązanie. że od bloga do sprzedaży gorie. Jednak stanowi ona najbardziej dojrzałe rozwiązanie tego typu przeznaczone dla Wordpressa. WP e-Commerce pozwala na przeglądanie bieżących statystyk sprzedaży. która znajduje się w magazynie. utrzystaluj. Każda opcja jest dokładnie opisajest WP e-Commerce.*.zanych z marketingiem (promocje. posiadać szereg odmian. Administrator tworzy ponadto podstawowy i rozszerzony opis. śledząc stany magazynowe. Tym niemniej VirtueMart posiada bardzo bogaty zestaw funkcji i w przypadku firm realizujących zamówienia bez współpracy z wieloma dystrybutorami lub producentami opisywane rozszerzenie Joomli może w pełni zaspokoić istniejące potrzeby. a następnie Zainstalowane. na liście rozszerzeń stron prezentujących poszczególne przedmioty i usługi. Najlepszą z nich właściwie wszystko. stąd też pracę ze sklepem można rozpocząć naWP e-Commerce instalujemy tak. współpraca z usłumy zaoferować towary lub usługi czytelnikom naszego gą Google Product Search). Jeśli natomiast chcemy rozwinąć hanwp-e-commerce. dane dotyczące wymiarów. Po gu niewielki sklep. walutę oraz stawkę podatkową. Rysunek 4. które nie współpracują z systemem Wordpress. to możemy skorzystać z wersji komercyjnej. go w podkatalogu sites/all/modules/.ostatniego z poleceń zajmie zapewne jedną lub dwie rzymy listę towarów wraz z cenami i przyciskiem Add sekundy. Katalog produktów pojawia nister. WP e-Commerce widoczny jako wtyczka Wordpressa. Jeśli jednak nie zadowalają nas funkcje oferowane przez wtyczkę.niu się jako administrator powinniśmy kliknąć Admisła integracja z blogiem. Dostępny jest spory pakiet opcji wiążących się z opłatami o różnej wysokości. Instalacja modułu specjalnie do zarządzania stanami magazynowymi. Należy pobrać ze strony domowej Ubercart to wtyczka może nas mimo wszystko ochronić przed pakiet w wersji odpowiadającej wykorzystywanemu przyjęciem zamówień na towary. możliwość przeciągania produktów do koszyka za pomocą myszy. Aby otworzyć sklep. jest prosta. a następnie rozpakować ne w danym momencie. które nie są dostęp. Po jej otwarciu uj. cart. a potem Site building i Modules.należy ją uaktywnić www.przez nas systemowi Drupal. bogatego w opcje konfiguracyjne. WP e-Commerce jest dostępny za darmo. Po zalogowaZaletę opisywanego rozwiązania stanowi jego ści. Panel kontrolny VirtueMart odtwarzacz MP3. Czas poświęcony na konfigurację nowego serwisu zwróci nam się z nawiązką podczas wykonywania czynności administracyjnych. Link Checkout prowadzi z kolei na stronę z zawartością koszyka oraz formularzem pozwalającym na przekazanie danych koniecznych do realizacji zamówienia.lpmagazine. galerię zdjęć. Jest on dostępny za darmo i po. chociaż nie pozwalają one na zbudowanie naprawdę dużego sklepu. to powinniśmy rozważyć sięgnięcie po narzędzia. Unikniemy dzięki temu konieczności migracji do alternatywnego systemu CMS. Na stronie z modułami pojawi się pięć noto cart. a także tworzenia działów sklepu przeznaczonych tylko dla wybranych klientów. Płatne wersje wtyczki oferują między innymi dodatkowe wsparcie dla systemów płatności. Dodatkowe dwie strony (Transaction Results oraz Your Account) pozwalają na śledzenie statusu oraz historii zamówień.Sklep w CMS-ie sklepu po sprzedaniu ostatniego egzemplarza. Jeśli poszukujemy takiego rozwiązania. Szczegółowe informacje dotyczące płatnych wersji wtyczki znajdziemy pod linkiem Upgrades. Mogą oni skorzystać z modułu Uber. Funkcji jest więc sporo. Wykonanie się w postaci strony Products Page.org 29 . Rysunek 3. Mimo siada bardzo bogaty zestaw funkcji niezbędnych w ceże WP e-Commerce nie oferuje opcji przeznaczonych lu utworzenia sklepu internetowego. Drupal i Ubercart Użytkownicy Drupala nie są w gorszej sytuacji niż posiadacze serwisów opartych na Joomli i Wordpressie. gdyż Drupal uchodzi za system zarządzania treścią. Domyślne ustawienia można oczywiście zmienić. Użytkownik może uaktywnić niektóre z nich lub wszystkie. Nie jest to niespodzianką. Ubercart pozwala między innymi na utworzenie opisów towarów. Drugie z wymienionych rozwiązań nie jest zresztą na tyle rozbudowane.ROZWIĄZANIA wych. jak rozbudowane rozszerzenie VirtueMart dla Joomli. raportami i zaopatrzeniem. Dotyczy to przede wszystkim modułu Token. Powinniśmy rozpocząć pracę od włączenia tych spośród modułów. Zapisanie informacji o produkcie spowoduje. które będą nam potrzebne. Ubercart pojawia się jako zestaw modułów Drupala. rozwijanych list o tytułach rozpoczynających się nazwą zainstalowanego przez nas rozszerzenia. Takiej funkcji nie oferuje ani VirtueMart. to jest prawdopodobne. Zmiany zatwierdzamy przyciskiem Save configuration. by brak modularności okazał się dokuczliwy. ceny. Pod tym względem moduł Drupala sprawdza się równie dobrze. Informacje o niespełnionych zależnościach wyświetlane są w kolumnie Description. jednostek. Po aktywowaniu sklepu możemy od razu przystąpić do tworzenia katalogu produktów. Korzystanie z Ubercart może okazać się nieco trudniejsze niż w przypadku wcześniej opisanych wtyczek do CMS-ów. Na zrzutce widoczna lista zależności ministracji trzeba się po prostu na- 30 7/2010 . Produkty mogą być organizowane w rozbudowane katalogi o zagnieżdżonej strukturze. a także na uaktywnienie możliwości dodawania komentarzy. Co ważne. płatnościami. Opis przedmiotu nie pojawi się wówczas na stronie głównej witryny. jeśli tylko któryś z tych modułów nie jest nam koniecznie potrzebny. Wystarczy rozwinąć w trakcie edycji produktu listę Publishing options i usunąć zaznaczenie obok opcji Promoted to front page. publikacją zdjęć i plików do pobrania. sposobu prezentacji produktu. którego adRysunek 6. Początkowo żadne z nich nie jest aktywne. że zostanie on natychmiast opublikowany na stronie głównej. Uwaga! Część spośród modułów wchodzących w skład Ubercart wymagać może obecności dodatkowych roz- szerzeń Drupala. stawkami podatkowymi. ani WP e-Commerce. pamiętając o wskazaniu wszystkich pozycji na liście Ubercart – core. określenie rozmiarów. Moduł pozwala na wydajne zarządzanie całym procesem realizacji zamówieRysunek 5. dostawą. W menu Create content pojawia się pozycja Product. Lista funkcji Ubercart prezentuje się naprawdę imponująco. że uda nam się go wyłączyć bez żadnego uszczerbku dla działania całego sklepu. Kon�guracja sklepu w Kokpicie Wordpressa nia. które nie są standardowo instalowane razem z systemem! Musimy je pobrać samodzielnie. jak i moduły oferujące wsparcie dla dodatkowych systemów płatności. to moduły sklepowe nie sprawią nam żadnej trudności. Pierwszy ze sklepów oferuje własny katalog wtyczek (VirtueMart Extensions Directory – VMED). www.pl/VirtueMart/ Spis_treści). Na stronie Community Plugins (http://getshopped. to warto pozostać przy już używanych rozwiązaniach i ograniczyć się do zainstalowania rozszerzenia systemu zarządzania treścią. to jednak pełną satysfakcję zagwarantują nam raczej rozwiązania polecane przez większość internautów i opisane w tym artykule.org/extensions/e-commerce). Szukajmy w nim rozszerzeń o nazwach rozpoczynających się od Ubercart lub UC. Ubercart nie posiada wła- W Sieci • • • VirtueMart – http://virtuemart. jak i Joomli. Dzięki temu obsługa sklepu nie będzie oderwana od zarządzania procesami zaopatrzenia. W przypadków handlu internetowego na większą skalę warto rozważyć wtyczki dla Joomli i Drupala. W przypadku WP e-Commerce oraz Ubercart nie jest już tak różowo. Ogromne zainteresowanie tymi rozwiązaniami sprawiło. Powinniśmy wziąć to pod uwagę.net. a ponadto brakuje stron zbierających informacje dotyczące tych sklepów i przeznaczone dla polskiego użytkownika.org/) lub katalog wtyczek sklepowych dla Joomli (http: //extensions. Ubercart – http://www. jednak nakłady czasu i pracy potrzebne na dostosowanie do polskich realiów niekompatybilnego sklepu będą znaczne.pl. że wykorzystamy także rozszerzenia na pozór zupełnie niezwiązane z handlem internetowym.pl/). jednak ogromną bazę wtyczek zamieszczono w katalogu modułów Drupala (http://drupal.org/extend/community-plugins/) znajdziemy jednak niewielki katalog wtyczek. zarówno instalowanych bezpośrednio w VirtueMart. Jeśli więc radzimy sobie z administracją Drupalem. by odwiedzić również stronę przeznaczonego dla Drupala koszyka e-Commerce (http://www. Godny uwagi jest też serwis Joomla. Jeśli nasz serwis oparty na jednym z CMSów wymienionych w tym artykule odnosi sukces. Tłumaczenia oraz dodatkowe moduły oferowane są często odpłatnie.joomla. Podsumowanie Dodatkowe wtyczki Oprogramowanie opisane w tym artykule to wyłącznie wtyczki do popularnych CMS-ów. Pod tym względem duet Drupal – Ubercart stanowi naprawdę wartościowe rozwiązanie. W takiej sytuacji z pewnością świetnie sprawdzą się opisane tutaj wtyczki. a także tematy i wystroje.org/. że także one doczekały się pojawienia szeregu dodatków i rozszerzeń. a my nie chcemy sprzedawać tysięcy produktów dziennie. Każdy problem można wprawdzie ominąć. Także pod tym względem rozszerzenie dla Wordpressa ustępuje konkurencji.net/. Mniej imponująco przedstawia się lista rozszerzeń WP e-Commerce.org 31 . Jednak to właśnie wymienione rozszerzenia uzyskują najlepsze oceny od coraz większych rzesz użytkowników. Pod względem liczby rozszerzeń wyróżniają się zwłaszcza VirtueMart oraz Ubercart. Mogą oni zajrzeć do Polskiego Centrum VirtueMart (http://www. gdzie znajdują się spolonizowane pakiety. Ubercart nie odstaje pod tym względem od samego CMS-a.org/node/206666). Wśród opisanych rozwiązań liczbą funkcji wyróżniają się VirtueMart oraz Ubercart. snego repozytorium pluginów. Polonizacja Wszystkie wymienione tutaj rozszerzenia są standardowo dostępne w wersji anglojęzycznej i przeznaczone na rynki inne niż polski. Możemy też przemyśleć opcję integracji sklepu internetowego z wykorzystywanym już przez naszą firmę oprogramowaniem typu ERP/CRM (na przykład vTiger). PAWEŁ WOLNIEWICZ Autor korzysta z Linuksa od kilkunastu lat. Kwestii tej nie należy lekceważyć. Wszystko zależy jednak od skali działalności. Użytkownicy duetu Jommla! i VirtueMart są w najlepszej sytuacji.lpmagazine. Niewykluczone. W przypadku niewielkich sklepów sprawdza się on jednak w zupełności. produkcji i dystrybucji. Zamieszczono tam polskojęzyczną dokumentację VirtueMart (http://wiki. Dzięki modularnej budowie sklepu oraz jego ścisłej integracji z CMS-em przydatne okażą się zresztą nie tylko wtyczki przygotowane z myślą o Ubercart.Sklep w CMS-ie uczyć. W tyle pozostaje WP eCommerce. dodatkowe wtyczki oraz forum internetowe. przygotowując się do rozpoczęcia handlu internetowego. Adres kontaktowy: pawelw@innodevel. Są to zarówno wtyczki poprawiające funkcjonalność sklepu. że administrator sklepu staje przed koniecznością jego polonizacji i zaimplementowania rodzimych systemów płatności. Mimo że nic nie stoi na przeszkodzie.drupalecommerce.org/.ubercart.joomla. a kontakty z klientami staną się bardziej wygodne. Przedstawione rozwiązania nie są jedynymi. zajmuje się wdrażaniem oprogramowanie open source.virtuemart. WP e-Commerce – http://getshopped. Znajdziemy w nim kilkaset rozszerzeń. W efekcie przystosowanie do polskiego rynku sklepu zainstalowanego w Wordpressie i Drupalu zajmuje więcej czasu niż w przypadku Joomli. po które mogą sięgnąć użytkownicy popularnych CMS-ów. To oznacza. pokazuje Tabela 2. na MTA-1. z którego dane chcemy uzyskać. amavisd. Opis zmiennych. które można ustawić w tym pliku. tak żeby użytkownik nie musiał wiedzieć. Tabela 1 opisuje znajdujące się w nim pliki. że zdecydowanie częściej pracuje się na nowych wiadomościach. Zawiera on informacje od Zimbra MTA (Postfix. że wykresy generowane standardowo mogą być niepełne i mało przydatne. MS). logi Standardowo głównym miejscem. WARNING. MTA. jest katalog /opt/zimbra/log. Całość przedstawia Rysunek 1 Poza katalog /opt/zimbra/log warto zajrzeć również do pliku /var/log/zimbra. Najczęściej spotykana jest konfiguracja przedstawiona na Rysunku 3. konta oraz adresu IP. na której maszynie znajdują się jego dane. tworząc klaster. cyrus-sasl I openldap. Dość ciekawy efekt można uzyskać. Hierarchical Storage Management gdzie zamiast 2009-11-20 umieszczamy dzień. a stare wiadomości na te wolne – i tak właśnie działa HSM! 32 7/2010 . który posiada 5 dysków twardych: 4 stosunkowo wolne i 1 bardzo szybki (np. W klastrach. musimy skorzystać z serwera Proxy. w których znajduje się więcej serwerów typu mail-storage (MS). jeżeli chcemy mieć jeden adres logowania do całego systemu. antyspam I antyvirus). logi. Z mojego doświadczenia wynika jednak. którego dotyczą. SSD). ERROR oraz FATAL. Oczywiście serwer LDAP może znaleźć się na dowolnej maszynie.properties. administrując nasz serwer. np. Jako że Zimbra składa się z wielu usług (zapraszam do części pierwszej – numer Linux+ 05/2010). Pomysł nasuwa się sam: należy przenieść nowe wiadomości na szybki dysk. Gdy jeden serwer to za mało – klaster w ZCS Monitoring i nadzór Standardowo panel administratora wyposażony jest w funkcje monitoringu. podczas gdy do starych maili zagląda się sporadycznie. następnie przechodzimy na stronę: https://host/zimbra/downloads/zmstat-chart/2009-1120/index. Możliwe wartości to INFO. Wydajemy polecenie: zmstat-chart -s /opt/zimbra/zmstat/2009-11-20/ -d /opt/zimbra/jetty/webapps/zimbra/ downloads/zmstat-chart/2009-11-20 Jeżeli okazuje się. Same logi zawierają informacje na temat daty. które ustalane są w trakcie procesu instalacyjnego – będą potrzebne w konfiguracji kolejnych węzłów w klastrze.ROZWIĄZANIA Zimbra Collaboration Suite – Praca grupowa w OpenSource Część 3 z 3 – Nadzór i administracja W ostatnim artykule z serii przedstawię niektóre zaawansowane funkcje administracyjne Zimbry. Jeżeli potrzebujemy bardziej szczegółowych informacji na temat niektórych usług. gdzie warto szukać przyczyn problemów. oraz samą informację zapisaną w logach.log. typu logu. Warto konfigurując poszczególne serwery zwrócić uwagę na hasła. System pocztowy ma to do siebie. tworzenie klastra jest stosunkowo proste. Wyobraźmy sobie serwer. numeru wątku. czyli na co zwracać uwagę. Efekt możemy zobaczyć na Rysunku 2.html . możemy zmienić tryb logowania w pliku /opt/zimbra/conf/log4j.in. Logi. Jest on konieczny. Na serwerach MTA i MS ustawiamy host LDAP wraz z hasłem zdefiniowanym w trakcie instalacji stacji LDAP (stąd zachowana musi być kolejność LDAP. że liczba kont przekracza możliwości sprzętu. którego używamy zamiast go zmieniać możemy po prostu dołożyć kolejne maszyny. korzystając z narzędzia zmstat-chart. Instalacja poszczególnych serwerów sprowadza się do wyboru właściwych usług na właściwym serwerze według schematu zawartego na Rysunku 4. Opis plików znajdujących się w katalogu /opt/zimbra/log Tabela 2. W ZCS możemy zde�niować tryby logowania poszczególnych podsystemów www.org 33 .Zimbra Collaboration Suite – Praca grupowa w OpenSource Tabela 1.lpmagazine. # id z wyników powyższej komendy • Ustawiamy czas. Standardowy wygląd logu Rysunek 2. wystarczy: • Utworzyć nowy katalog na szybkim dysku twardym: mkdir /opt/zimbra/hsm chown zimbra:zimbra /opt/zimbra/hsm • Dodać wolumen do ZCS oraz ustawić go jako aktywny: su – zimbra Rysunek 3.domenaB. aby uwierzytelnianie odbywało się przez LDAP. Gotowe! Warto zwrócić uwagę na fakt. ������������� FAQ Częstym problemem na serwerach obsługujących wiele domen są wirtualne adresy zabezpieczane przez SSL. dokumentu etc.ROZWIĄZANIA Konfiguracja Hierarchical Storage Management jest bardzo prosta.domenaA. że LDAP jest tylko mechanizmem uwierzytelniania – konta trzeba tworzyć ręcznie. po którym wiadomość ma być przeniesiona na dysk HSM: zmprov mcf zimbraHsmAge 4d • Uruchamiamy usługę: zmhsm -t ZCS można skonfigurować tak. tak więc nie zawsze wybór HSM jest pozytywnym rozwiązaniem. natomiast użytkownicy domeny B przez mail. Zmstat-chart generuje statystyki niedostępne standardowo 34 7/2010 .) ze zmienną zimbraHsmAge ustawioną powyżej – może to mieć negatywny wpływ na wydajność systemu. Po doprowadzeniu kreatora do końca możemy przetestować konfigurację. żeby użytkownicy domeny A logowali się poprzez mail.pl możemy to zrobić w bardzo prosty sposób z panelu administracyjnego (w ����������������������� ��������� �������������� ������������������������������������������������������������������������ ������������������������������������������������������������������������� ����������������������������������� Rysunek 1. Ustawienia te mają charakter lokalny (per domena).pl. Wybieramy mechanizm „Zewnętrzny LDAP” i wypełniamy okienko jak na rysunku 5. Warto pamiętać o tym. Jeżeli chcemy. Żeby skonfigurować uwierzytelnianie wystarczy w ustawieniach domeny wybrać przycisk „Konfiguruj uwierzytelnianie”. dzięki czemu każda domena może łączyć się innym serwerem. Najpopularniejsza forma klastra zmvolume -a -n hsm-volume -t secondaryMessage -p zmvolume –l /opt/zimbra/hsm Integracja z LDAP zmvolume -sc -id 3. wydarzenia. że usługa HSM działa permanentnie. sprawdzając i porównując datę każdej informacji (wiadomości. pl http://deltek.org 35 . Na końcówkach wybieramy stosowne usługi rum Zimbry (http://zimbra. Nie wspomniałem o potężnych możliwościach uprawnień ACL. Świetnym źródłem informacji jest oficjalne foRysunek 4. Właściciel �rmy DELTEK. znany z projektów EKG i EKG2. polecam! MTA: Install zimbra-ldap [Y] N Install zimbra-logger [Y] N Install zimbra-mta [Y] Y Install zimbra-snmp [Y] N Install zimbra-store [Y] N Install zimbra-apache [Y] N Install zimbra-spell [Y] N Install zimbra-archiving [N] N Install zimbra-convertd [N] N Install zimbra-proxy [N] N PIOTR KUPISIEWICZ Open-Source to jego hobby. temat nie został wyczerpany nawet w połowie.php?title=Multiple_ SSL_Virtual_Hosts_5. W takim wypadku należałoby albo użyć certyfikatu per serwer wirtualny. których rozmiar znacząco przekracza możliwości tej serii artykułów. Kontakt: [email protected]/ Rysunek 5. Problem pojawia się gdy zamiast http chcemy używać https. Z pomocą na szczęście przychodzi Wikipedia Zimbry omawiająca workaround tego problemu.0 LDAP: Install zimbra-ldap [Y] Y Install zimbra-logger [Y] N Install zimbra-mta [Y] N Install zimbra-snmp [Y] N Install zimbra-store [Y] N Install zimbra-apache [Y] N Install zimbra-spell [Y] N Install zimbra-proxy [N] N Install zimbra-archiving [N] N Install zimbra-convertd [N] N MS (mail storage): Install zimbra-ldap [Y] N Install zimbra-logger [Y] Y Install zimbra-mta [Y] N Install zimbra-snmp [Y] N Install zimbra-store [Y] Y Install zimbra-apache [Y] Y Install zimbra-spell [Y] Y Install zimbra-proxy [N] N (chyba że proxy) Install zimbra-archiving [N] N Install zimbra-convertd [N] N Podsumowanie Mimo że to już trzecia część artykułu.zimbra.lpmagazine. do których można znaleźć linki właśnie na tym forum.com/index. jednakże w Zimbrze w prosty sposób nie da się tego zrobić. Szczegóły można znaleźć na stronie: http:// wiki.Zimbra Collaboration Suite – Praca grupowa w OpenSource ustawieniach domeny w zakładce „Serwery wirtualne”).com/forums/) oraz blogi. Kon�guracja uwierzytelniania przez LDAP Reklama ��������� � ������� ����������� �������� ����������� ����������������������� ��������������������������������� � �������� ����������� �������� ����������� � �������������� ���� � ��������� �������� � ������ ���� ����������������������������� �������������������������������� �������������������������������������������������� �������������������� ����������������������� �������������������������������������� ����������������������� ������������������� www. o pisaniu Zimletów oraz o wielu innych tematach. Jako doświadczony administrator przeszedłem przez bardzo dużo podobnych rozwiązań wspomagających pracę grupową i zdecydowanie wybrałbym Zimbrę. jako to najlepsze. Jak długo będziemy ją tworzyć i pielęgnować?). Dostarczenie „dokumentacji” tylko w formie wydruku zbioru wyprodukowanych pakietów i klas oraz relacji między nimi nie spełnia podstawowych funkcji. Nie zawsze jednak się o tym pamięta. Prowadząc projekt na bazie metodyk lekkich. Cele powinny być małe i nie posiadać większego stopnia skomplikowania. Niektórzy stwierdzą. Idąc dalej oraz biorąc pod uwagę ograniczenie 3 P (wymagań. cel musi być określony w czasie. Definiując cele. Element należy sformułować w taki sposób. Założenia oraz cele charakteryzują się cechami. staramy się produkować jak najmniej dokumentów (kod ponad dokumentacją). modyfikowalność (horyzont czasowy .DLA POCZĄTKUJĄCYCH Kontrola jakości Metodą client i server side control Każdy projekt złożonego systemu informatycznego obarczony jest ryzykiem. Przewidujący i doświadczeni programiści dostaną gęsiej skórki. które stara się osiągnąć w założonej perspektywie czasowej. tacja nie powinna powodować kłopotów w jego zrozumieniu. Cechy dokumentacji kodu źródłowego • • • • jednoznaczność i spójność (prostota – Kto jest odbiorcą?). kompletność (mierzalność – Ile wytworzymy dokumentacji?). jakie musiał obligatoryjnie zagwarantować programista. Ze względu na szybkość współczesnego życia cele powinny być istotne. a zadania o mniejszym priorytecie lub nieważne można przesunąć na dalszy plan. Cel zbyt ambitny lub utopijny podkopuje wiarę w jego osiągnięcie oraz osłabia motywację do jego realizacji. interpre- Funkcje dokumentacji • • • informacyjna (pomaga szybko wejść w wybrany temat). standaryzująca (pozwala wypracować własne praktyki odnoszące się do kodu źródłowego). 36 . to stworzenie dokumentacji kodu źródłowego. jakie ona ma pełnić. że nic się nie stało . poprawność (istotność – Jakie informacje przekażemy?). budżetu i czasu). Pierwszą cechą jest prostota. automatyczne generowanie dokumentacji na bazie kodu źródłowego w wielu wypadkach spełnia tylko funkcje wywiązania się z umownych ustaleń z kontrahentem. Cechy i funkcje dokumentacji Każdy z nas ustala cele zawodowe. Każde zamierzenie oraz działania z założenia powinny być realistyczne i osiągalne. Ryzyka te dotyczą aspektów związanych z zarządzania wiedzą oraz jej transferem. prywatne. Pewnego dnia zachęcony intratną propozycją pracy odchodzi do konkurencji. by można było liczbowo wyrazić stopień lub przynajmniej umożliwić jednoznaczną weryfikację jego realizacji. Brak świadomości konieczności posiadania wiedzy dostępnej dla całego zespołu prowadzi zazwyczaj do powstawania antywzorców. co jest istotne w projekcie. Róbmy tylko to. zgodnie z zasadami ustalonymi w projekcie. w której tylko jeden z programistów od początku pracujący w projekcie posiada szczegółową wiedzę na temat działania kluczowych modułów systemu. K ażdy projekt złożonego systemu informatycznego obarczony jest ryzykiem. archiwalna (przechowuje informacje o ewolucji systemu). Ryzyka te dotyczą aspektów związanych z zarządzania wiedzą oraz jej transferem. Drugą cechą jest mierzalność. Każdy cel powinien zostać sformułowany według koncepcji smart. W większości przedsięwzięciach minimum. Można wyobrazić sobie sytuację. Sformułowanie musi być jednoznaczne i nie pozostawiające miejsca na luźną interpretację. Pospieszne. Brak świadomości konieczności posiadania wiedzy dostępnej dla całego zespołu prowadzi zazwyczaj do powstawania antywzorców w projektach. które te elementy powinny koniecznie posiadać.damy sobie radę. jak działa dana metoda oraz jaki algorytm implementuje.. Nie istnieją globalne standardy i niezmienne reguły tworzenia dokumentacji kodu źródłowego. Chcąc poprawić jakość software’u. Ale czy na pewno są to informacje zarezerwowane tylko dla osób bezpośrednio zaangażowanych w tworzenie kodu? Patrząc szerzej. Przytoczony przykład jest tylko propozycją i w miarę powstania potrzeby może być rozwijany według uznania Czytelnika. jeżeli klient zleci jego modyfikację oraz nie będzie informacji. wskazane jest.. żeby trochę pomyśleć o przyszłości i odpowiedzieć sobie na pytanie: Jak będzie pracować się z systemem i rozwijać kod za kilka lat. return margin.0 */ * @see link double helper = cp / sp. double double margin = 0. powinien mieć dokładnie określony horyzont czasowy. Po pierwsze. Zastosowanie tagu @see /** */ * @see Person#phoneNumber } // Margin = 1 . public String getPhoneNumber() { } } 37 . Bazując na opisywanych cechach.Cost price / Selling price * (1 + (tax / 100)) margin = 1 . że metoda wykorzystuje algorytm Forda-Bellmana obliczający najkrótszą odległość od wybranego wierzchołka grafu do pozostałych? Jest to informacja bardziej „strawna” niż składnia języka programowania. Ile jej wytworzymy? Raczej jak najmniej. prosta i spójna. Zatem dokumentacja będzie wykorzystywana tylko do rozwoju kodu. // Calculation . Listing 2. można pokusić się o opracowanie ogólnych zaleceń dotyczących dokumentowania kodu przez programistów. Podczas opracowywania dokumentacji należy również zachować umiar.0)). Ma umożliwić klientowi rozwój jego systemu nawet w sytuacji braku wsparcia ze strony pierwotnego zleceniobiorcy.0. dobra dokumentacja kodu źródłowego pełni określone funkcje w procesie produkcji oprogramowania. Rodzi się pytanie. jak można przeczytać dwa lub trzy zdania. Zalecenia Narzędzie javadoc oraz komentarze zawierające dokumentację stosuje wielu programistów java. Dokumentowanie prostych „seterów” i „geterów” nie jest dobrym pomysłem oraz może jedynie pełnić funkcję rozrywkową i rozbaListing 1. Dokumentacja powinna być poprawna językowo. Rzeczywiście. żeby dokumentację można było dalej pielęgnować. można dokonać próby zdefiniowania podstawowych cech. jak działają rozwiązania i będą występować braki w dokumentacji kodu źródłowego? W najgorszym wypadku pozostaje debugger. Po drugie. Jedną z najistotniejszych cech jest modyfikowalność. Dokumentacja dla algorytmów /** * * Oblicza marze wedlug wzoru . końcowego użytkownika. IstotListing 3. Tylko programiści.. z dokumentacji kodu źródłowego mogą korzystać testerzy. jakimi będzie się charakteryzować dokumentacja kodu źródłowego. Kto jest odbiorcą? Odpowiedź na to pytanie w wielu zespołach jest bardzo prosta. weryfikujący jej poprawność podczas odbioru produktu. analizując kod źródłowy. Po co analizować kod. double sp. Żargon i niedokładność byłych kolegów z zespołu nie musi być powszechnie i zawsze rozumiany. * @param sp cena zakupu * @param tax podatek * * @return marza * @param cp cena sprzedazy * Opis odpowiedzialności klasy * @author Inicjały developera public double getMargin(double cp. Kod źródłowy tworzą programiści dla programistów. można pozyskać informacje. warto zadbać.helper * (1 + (tax / 100. poklepanie po ramieniu oraz zlecenie nowego zadania najbardziej doświadczonym kolegom. architekci lub przedstawiciele zleceniodawcy. Analogicznie jak dokumentacja dla administratora systemu. Dokumentacja dla klasy /** * wiać zespół. jednoznaczna. return phoneNumber. co widać w kodzie”.Kontrola jakości projektu Podsumowując. w jakim zamierzamy go osiągnąć. „Po co opisywać coś. if (vkp != 0) { */ tax) { * @since 1.. wprowadzanie akapitów. Pomocnymi narzędziami mogą się również okazać znaczniki HTML. Dokumentacja dla pozostałych metod musi zawierać tagi @param. Podobnie jak w przypadku “geterów” i “seterów”. informacje o wersji systemu. Atrybuty są elementami. jednak w przypadku specjalistycznych pojęć np.failure" <formatter type="xml" tofile="checkstyle_ <fileset dir="src" includes="**/*. interfejsów oraz typów wyliczanych. Przytoczone elementy powinny zostać udokumentowane obligatoryjnie. Gdy dokumentacja kodu źródłowego jest gotowa do wprowadzenia do repozytorium. wersji. w przypadku jeśli dotyczą one atrybutów. Przykładowe zadanie Anta wykorzystujące Checkstyle <target name="checkstyle" description="kontrola kodu projektu"> <checkstyle config="docs/sun_checks. które realizują skomplikowane algorytmy oraz interpretacja ich działania nie jest prosta. z których korzysta metoda. Przykład zastosowania tagu @see prezentuje Listing 2. których znaczenie nie jest intuicyjne. które zazwyczaj opisują się same. zaleca się dodawanie linków do atrybutów realizujących relację pomiędzy obiektami. Dokumentowanie poszczególnych metod powinno być obowiązkowe. prostotą oraz kompletnością. niezbędne jest dokumentowanie klas. @return i @throws.DLA POCZĄTKUJĄCYCH nym celem jest stworzenie dla projektu wytycznych określających jej poprawne tworzenie na potrzeby firmy. Oprócz opisu odpowiedzialności klasy. public Questions getQuestions() { */ } } return questions. Przykład minimalnej dokumentacji dla klas zawiera fragment z Listingu 1.xsl"/> Rysunek 1. W takich przypadkach wymagana jest dodatkowa definicja wzorów.xml" out="checkstyle_report. W przypadku tak prostych metod uzasadnione jest dokumentowanie “geterów” i “seterów”. Przyglądając się projektom realizowanym w języku java.java"/> </checkstyle> <style in="checkstyle_report. dokumentacja powinna zawierać informacje o autorze. można dodatkowo sprawdzić jej poprawność oraz zgodność z globalnymi wytycznymi projektowymi.html" style="checkstyle. Na rynku dostępne są narzędzia. Listing 4. Kolejnym elementem są metody klas. jeśli generuje wyjątki. Umożliwiają one formatowanie tekstu. gdzie znajduje się szerszy opis. W przypadku atrybutów wielokrotnie pomija się dołączanie dokumentacji w kodzie źródłowym. kiedy klasa się pojawiła oraz wiązania do systemu zarządzania kodem źródłowym. Łączenie klas w dokumentacji public class Exam { /** * * Pytania dla egzaminu * @see Questions Questions questions.xml"/> failureProperty="checkstyle. Listing 5. z zakresu rachunkowości lub finansów przedsiębiorstw warto opisać. które umożliwiają sprawne przeprowadzenie kontroli poprawności dokumentacji w kodzie źródłowym java. Jako wyjątek można przyjąć pominięcie opisów prostych “geterów” i “seterów”. wiele z nich to narzędzia darmowe – open source.xml" failOnViolation="false"> report. co oznaczają. W miarę potrzeby można zamieścić linki do innych fragmentów dokumentacji powiązanych z klasą. Przykładem jest Listing 4. Brak taga @return w dokumentacji – informacje wyświetlane przez Eclipse </target> 38 . Szczególną uwagę oraz obowiązkową dokumentację wymagają metody. Stosowanie tych udogodnień może podnieść jakość i czytelność dokumentacji. Przykład takiej metody prezentuje Listing 3. W takiej sytuacji eleganckim rozwiązaniem jest dodanie odnośnika do odpowiedniego atrybutu. oznaczanie tekstu jako kod źródłowy lub pogrubianie ważnych elementów. Wyzwanie nie jest trywialne z uwagi na fakt potrzeby znalezienia punktu równowagi pomiędzy użytecznością. które można zamieszczać wewnątrz komentarzy. W skrajnych przypadkach do procesu budowy aplikacji i generowania dokumentacji mogą się przedostać fragmenty.Kontrola poprawności dokumentacji po stronie klienta i serwera Poprawność opisów interfejsów jest istotna w całym procesie produkcji. a szczególnie w fazach pielęgnacji systemu.1\bin\ antworkingdir="D:\workspace\MyProject" buildfile="MyProject-nightlybuild. a w edytorze kodu źródłowego wskazane zostaną istniejące błędy w dokumentacji. Chcąc stworzyć własny szablon. które nie są zgodne ze standardowym szablonem Sun Checks ustawionym po instalacji. Po instalacji należy wskazać projekt do kontroli oraz prawym klawiszem myszy wybrać funkcję Properties –> Checkstyle. Należy mieć świadomość. Kontrolować dokumentację można po stronie klienta. Takim elementem jest tekst opisujący np. których jakość jest bardzo niska. Każdy programista może skorzystać z wtyczki dla środowiska IDE Eclipse. Przykład integracji Anta z frameworkiem CruiseControl <schedule> <ant antscript="C:\Java\apache-ant-1.4 oraz gwarantuje weryfikację i kontrolę dokumentacji po stronie klienta. które umożliwiają kontrolę dokumentacji w kodzie źródłowym projektu java. że nie wszystkie elementy dadzą się w 100% skontrolować i naprawić. Projekt Eclipse-CS jest darmowym rozwiązaniem. klasy w projekcie. Jedną z nich jest dokładność oraz sumienność autora dokumentacji. Rozwiązanie integruje analizator kodu źródłowego Checkstyle z Eclipsem 3. na który nie ma się w większym stopniu wpływu. czyli testem kodu zapamiętanego w repozytorium systemu kontroli wersji.xml" uselogger="true" <schedule> usedebug="false"/> ant. wybierając funkcję Software Updates. służącą do kontroli dokumentacji kodu źródłowego java. Istnieją wady tego rozwiązania.bat" 39 . a następnie włączyć kontrolę za pomocą przełącznika Checkstyle active for this project. Wtyczka Eclipse-CS udostępnia również tworzenie własnych szablonów. oferowanym na licencji LGPL. czyli programisty. dostosowanych do potrzeb danego projektu. Projekt zostanie zbudowany ponownie. W sieci dostępnych jest wiele projektów. Instalacja wtyczki odbywa się w sposób standardowy. należy przejść do zakładki Local Check ConfiListing 6. w prosty sposób można zainstalować wtyczkę.6. Proces kontroli można wspomóc testem kodu źródłowego po stronie serwera. Z poziomu menu Help. xml przedstawia Listing 6. Opis nie wyczerpuje wszystkich możliwości prezentowanych narzędzi.com/j2se/javadoc/.sourceforge. które określają ścieżkę wywołania skryptu Anta. która szczegółowo opisuje funkcje frameworka CruiseControl. Pierwszy dotyczy połączenia narzędzia Ant z Checkstyle. oraz po odpowiednim skonfigurowaniu ścieżek do pakietów jar można korzystać z funkcjonalności. które nie będą miały zastosowania w projektach innych firm. W sieci • • • • • Javadoc – http://java. Interesuje się systemami wspierającymi procesy logistyczne. Drugi krok jest włączeniem wcześniej przygotowanego zadania Anta do interfejsu CruiseControl. CruiseControl – http://cruisecontrol.xml w tagu <ant/>.lechert@gmail. Od programistów wymagana jest konsekwencja w działaniu i samodyscyplina w celu utrwalenia proponowanego standardu. Eclipse-CS bazuje na narzędziu Checkstyle. Proces raportowania i późniejszych korekt wymaga wskazania odpowiednich priorytetów do popełnionych błędów. Eclipse-CS – http://eclipse-cs. Wymienione narzędzia można następnie zintegrować z frameworkiem CruiseControl. Można zaproponować Czytelnikom własne próby i eksperymenty z prezentowanymi projektami.sun. Najprostszą metodą integracji Anta z Checkstyle jest zdefiniowanie odpowiedniego zadania w pliku build. która kontroluje kod źródłowy. Dociekliwych użytkowników odsyłam do bogatej dokumentacji.xml. Dodatkowo jeśli w projekcie korzysta się z narzędzi weryfikujących kod źródłowy systemu. jeżeli programista np.DLA POCZĄTKUJĄCYCH gurations oraz następnie za pomocą przycisku New stworzyć nową konfigurację szablonu. Opisywaną sytuację przedstawia prezentowany rysunek. późniejszą pielęgnację i rozbudowę systemów. Framework jest dostępny dla systemu operacyjnego Linux. Konfiguracja z antem odbywa się w pliku config.apache. Przykładowy Listing 5 przedstawia tę czynność. Podsumowanie Podsumujmy zalety. może na początku ograniczać swobodę członków zespołów. Niewątpliwie zespół zainteresowany tematem będzie musiał poświęcić czas na przemyślenia i opracowanie optymalnego. System cyklicznie w ustalonym czasie sprawdza źródła systemu oraz udostępnia raportowanie ewentualnych błędów. W tym przypadku w oknie Edit module configuration pozostawiamy odznaczone opcje allowMissingJavaDoc. Znacznik ten posiada wiele atrybutów. Przykładowy fragment pliku konfiguracyjnego config. którego pierwotnym zastosowaniem jest integracja procesu budowania aplikacji. zapomni opisać wartości zwracane przez metodę. można w dowolnym czasie sprawdzić jej poprawność. Zachęcam do dalszych eksperymentów.net/. @param oraz @throws. Ckeckstyle – http://checkstyle. Narzędzie Checkstyle łatwo integruje się z Jakarta Ant. Dobrym ćwiczeniem jest wymuszenie konieczności wprowadzania w komentarzach dokumentacji tagów @return. Z listy dostępnych elementów należy wybrać Javadoc Comments oraz następnie element Method Javadoc w przypadku wprowadzania reguł dla metod klas. Niewątpliwą zaletą stosowania własnego rozwiązania w tym obszarze jest wzrost jakości opracowywanej dokumentacji. zagadnieniami zarządzania projektem oraz oprogramowaniem o otwartym kodzie.net/. lokalizację logów procesu oraz zadanie do wykonania. które wiążą się z wdrożeniem własnych rozwiązań kontroli poprawności dokumentacji metodą client server. Automatyzacja prac kontrolnych dokumentacji kodu źródłowego z pewnością wzbogaci warsztat pracy firmy programistycznej oraz poprawi jakość wydawanej dokumentacji. Proces integracji można podzielić na dwa etapy. CruiseControl może zostać wcielony w rolę “kontrolera” poprawności opracowanej dokumentacji w poszczególnych wydaniach projektu. na poziomie repozytorium zarządzania wersjami rozwijanego systemu oraz raportować znalezione usterki i błędy. Tak stworzony element należy dodatkowo skonfigurować.net/. Posiadając tak zdefiniowaną konfigurację. globalnego rozwiązania. dostosowanego do własnych potrzeb. co implikuje łatwiejszą. Wywołując zadanie z poziomu linii komend. Jakarta Ant – http://ant. wyświetlając lupę oraz załączając dodatkowo informację o brakującym elemencie w dokumentacji. wady i nakłady pracy.org/. Kontakt z autorem: lukasz. rodzić przyzwyczajenia. Eclipse powiadomi go o tym fakcie. klikając przycisk Configure. Drugim krokiem jest integracja zadania z narzędziem CruiseControl. ŁUKASZ LECHERT Autor jest absolwentem specjalizacji Inżynieria Oprogramowania Politechniki Wrocławskiej oraz Studium Podyplomowego Zarządzanie Projektem na Poznańskim Uniwersytecie Ekonomicznym. Integracja pozwala kontrolować kod globalnie. allowMissingParamTag.sourceforge. allowMissingThrowsTag oraz allowMissingReturnTag. Wprowadzenie wytycznych w jednej organizacji.sourceforge.com 40 . należy również uwzględnić dostosowanie reguł do opracowanych standardów. co stwarza możliwości opracowania mechanizmów kontroli dokumentacji i kodu źródłowego java po stronie serwera. Po zdefiniowaniu zadania checkstyle. POBIERZ . kontynuacją przygód głównego bohatera. Na początek rzućmy okiem na menu główne gry. W niektórych produkcjach.11 P arę miesięcy temu mieliście okazje poznać Boba – żołnierza należącego do rasy Blobów zmuszonego do poznania smaku wojny oraz obrony rodzimej krainy przed żądnymi władzy okupantami. pozwala odwrócić działanie drugiej osi dżojstika/gamepada oraz włączyć i dostosować poziom rozmycia obrazu podczas ruchu. w których spojrzeniu można doszukać się wszystkiego prócz życzliwości. Jak się po chwili okazuje – słusznie. podobnie jak Bloby – i to wszystkie. a okupanci nie przyczaili się przestraszeni pod pierwszym głazem. co wbrew pozorom jest bardzo użyteczne. Ciekawie rozwiązano kwestię regulacji głośności. co umożliwia dosyć dobrą konfigurację tego. Tak właśnie zaczyna się nasza przygoda – burzo- 42 7/2010 . jak powiedzieli. zaś następna. Warto zauważyć. już wtedy poinformowano nas. bowiem ciężej zauważyć strzały czy nawet ruchy przeciwników. to od razu zauważymy dwie podkategorie: Definiuj przyciski i Dodatkowe opcje. Opisywany dziś tytuł został po raz pierwszy wydany w 2006 roku.ROZRYWKA Blob Wars – Episode II Blob And Conquer. Otóż zauważyłem je po kilku dniach gry i ku mojemu zdziwieniu wywarło na mnie spore wrażenie. Na arenę linuksową weszli w 2003 roku z tytułem Project: Starfighter. że zaczęli się organizować. co bez dwóch zdań świadczy na jego korzyść. Dlaczego? O tym później. po drugie sprawia.sensownie wyważony. Po raz kolejny zatem znajdziemy się w skórze tego dzielnego wojaka. Ci. rozpoczyna się ona 8 miesięcy po wydarzeniach z poprzedniej części gry. jeśli idzie o ciekawsze możliwości. Poza tym. zaś po jego włączeniu nawet w 800x600 było wyraźnie widać. większość nie wymaga szczególnego omówienia. Po długim szwendaniu się po okolicy dostrzega w końcu sporą gromadkę wpatrzonych w niego oczu. Dlaczego gra zdecydowanie zasługuje na uwagę i jest godnym następcą części pierwszej? Już mówię. w których uczestniczyliśmy przy okazji części pierwszej. który tym razem nie sam. Gra w dziś opisywanej wersji ujrzała światło dzienne 16 listopada 2009 roku i jak twierdzą twórcy – jest ostatnim wydaniem gry. co słyszymy pod kątem indywidualnych upodobań. że chociaż podobnie jak w części pierwszej większości opcji nie przypisano konkretnym kategoriom. że nadaje się całkiem dobrze dla nowicjuszy. że kilka słów należy się samemu rozmyciu. czy gra ma przechwycić kursor czy nie. efektem czego druga część przygód dzielnego okrągłego wojaka jest zdecydowanie bardziej zespołowa. przełączyć między wyświetlaniem pełnoekranowym a oknem. gdzie tej opcji brakuje. przeniesionej w trzeci wymiar drugiej części jego przygód. wiedzą. Standardowo możemy z ich poziomu zmienić wykorzystywaną w grze rozdzielczość ekranu. nie tylko Bob. jednocześnie znacznie ją utrudniając. Wczytaj grę. Autorzy. muzyki. czekając na sąd z rąk uciskanych. Dla porównania. Dodaje to grze sporo swego rodzaju realizmu. Co tyczy się opowiadanej w grze historii. a składają się na nie Nowa gra. Efekt ten całkiem ładnie rozmywa obraz podczas ruchu bądź obracania kamery. od razu przeczuwający zasadzkę. wersja 1. że w przypadku drugiej części. a tym samym nie wiedzą nic o zespole Parallel Realities – kilka słów wstępu. rzucenia okiem na wiadomości w komunikatorze. Jak sądzę. a momentem przełomowym jest w tym wypadku zaginięcie zwiadowcy imieniem Teeka w okolicy upraw wiśniowych. Przede wszystkim fantastycznie się prezentuje. Wręcz przeciwnie. zwłaszcza gdy obracamy obraz wokół naszego bohatera. Pierwsza klasycznie skupia wszystko. Zapraszam do lektury. że skacze. Wcześniej zajmowali się pisaniem gier na Amigę – na swoim koncie mają tytuły takie jak np. Co zaś tyczy się fabuły. na którym uruchamiamy grę. że zauważalnie wzrastają wymagania stawiane przed komputerem. mianowicie głośność dźwięków. tak zrobili. Warto jednak dodać. Umieszczone w nim pozycje nie zaskakują. czę- sto zostajemy uwięzieni w oknie programu bez możliwości np. trylogia BOTSS. w moim przypadku bez rozmycia gra działała idealnie w rozdzielczościach rzędu 1680x1050. jest ona. Dzisiaj przyjrzymy się znacznie bardziej rozbudowanej. Dla osób. gdy obraz nie jest do końca wyraźny. Opcje oraz Zakończ. Przejdźmy teraz do opcji gry. które nie miały w rękach numeru marcowego. a jego wykonanie zajęło autorom ponad 2 lata. podkładu i środowiska. co związane ze sterowaniem. po raz pierwszy nie wybieramy poziomu trudności – jest on z góry ustalony i co najważniejsze . tym jednak zajmiemy się w kolejnych akapitach. stanowi wyzwanie również dla bardziej doświadczonych graczy. rozpoczynając grę. Na poszukiwania przyjaciela wyrusza Bob. Trening. którzy grali. w przeciwieństwie do poprzednika. Umożliwiono nam również podjęcie decyzji. Została podzielona aż na 4 osobne suwaki. a ramię w ramię z innymi Blobami zechce dać nauczkę najeźdźcom ponownie próbującym podporządkować sobie jego współbraci. jak również dostosować poziom jasności obrazu. jak łatwo się domyślić. Sądzę. że po pokonaniu Galdova spokój wcale nie powrócił na rodzinne ziemie Blobów. Co zy okupantów. To znaczy z jednej strony już w towarzystwie Teeki zostaniemy oślepieni pierwszymi na pewno tak. W pierwszym przypadku bohater sam namierza wrogów i nie spuszcza ich z oka dopóki nie zginą lub za pomocą odpowiedniego klawisza nie wydamy polecenia zmiany Rysunek 1. co ważniejsze. że gra wciąga na długie wieczory. a wyłączenie jej po ukoń.je się on do walki z większą liczbą wrogów. i tak z ziemią nie zrównamy. Myślę. a w pobliżu jest więcej wrogów bądź też zauważycestwienie komandora latających droidów – pierwszego liśmy silniejszego przeciwnika. co wynika przede wszyst.Blob Wars – Episode II wą nocą w okolicach upraw wiśniowych. przemilczę dalsze lo. konieczne oka. mimo przeważnie bez większych fanfar.będziecie zauważalnie rzadziej. Pierwsze modyfikacje.również wiedzieć.na czerwono. w których nie dowanie lepiej dowiedzieć się.cie sobie np. aby posłane w jego kierunku strzały z racji dziewiają. znacznie wolniej się nudzi i rzadziej zniechęca do ponawiania prób pokonania określonego etapu. posiada ono jednak kilka nowieniem trudnym do spełnienia.lpmagazine. gdy ten będzie będzie Wam oderwać się od gry. zaoszczędzić na amunicji. Sama rozgrywka. Od razu simy z racji blokującego przejście pola siłowego skorzy. z którą przyjdzie nam podróopowieści. Oczywiście te. chociaż dotyczy kontynuacji starej Kolejna sprawa to drużyna. w których przyjdzie nam uczestniczyć.mniejszym ruchu za jego pomocą pobawić się w snajpego typu filmy będą wyświetlane jedynie przed co istotniej. np. którego dla własnego bezw grze bossa. w jaki opowiedziana została fabuła oraz wiać się w odpowiedniej odległości i pozycji w stosunku wydarzenia. w jaki opowiadana jest historia.zmieniać po kolei cele.org 43 .chciałbym zaprzeczyć osobom. mu. skrzynię czy szyby). Te. Oczywiście to nie jest nawet połowa historii. Zdecyszymi poziomami.pieczeństwa należałoby zdjąć w pierwszej kolejności.gwarantuje trafienia. W drugim przypadku. a niekiedy nawet może tę grę utrudniać. WyobraźBlobów. jakie rzucają się w oczy. spra. którego. Kilka innowacji wpro. co uni. Aby odeprzeć atak nieprzyjaciół. Szybko odkrywa.ra oraz. cho. Przejście pomiędzy tymi. Jednak nawet na tym poziomie zauważyć można pewne różnice. nadal wadzonych zmian.worze walki przy jednoczesnym unikaniu ataków.wtedy? Odpowiedni klawisz. że obcy postawili sobie tutaj dobrze zorganizowany ścią domyślacie. jednym słowem – całość jest zdecydowanie bardziej grywalna! Najbardziej podstawowe założenia gry jakoś szczególnie się nie zmieniły. odbywa się niż zmarnować cenne naboje na obiekt.tym pojawia się celownik. które sądzą. możemy przy sami przy górnej i dolnej krawędzi ekranu. będąca jednocześnie jedną z największych wprokim z przeniesienia gry w trzeci wymiar. Przede wszystkim w trybie wadzono do sposobu. Zabawa. mierzymy samodzielnie. natomiast nie załatwia ono za nas wszystpromieniami słońca nieopodal atakowanej właśnie bazy kiego. Później to już my wyruszymy w stronę ba. dodatkowo podświetlający się raz oprócz renderowanych obrazków z tekstem umiesz.oddalił.zasługujących na uwagę cech.obranego celu. aż trafimy na ten właściwy w fertomiast aby nie psuć Wam zabawy. przeważnie skupiając się na unikaniu ataków obcych przy jednoczesnym posyłaniu w ich stronę kolejnych serii pocisków. Podobnie jak w części pierwszej i tutaj. ale nie tak łatwo juszników. praktycznie cały czas musimy ustaściową. że zablokowany na kimś celownik nie ciaż mamy do czynienia z grą w głównej mierze zręczno.żować. najlepszych chęci. wciąż idziemy przed siebie. Mając w planach akcję ratunkową. czy coś możemy zniszczyć nastąpi jakiś szczególnie ważny zwrot akcji. na. Celowanie ręczne wykorzystywać czeniu aktualnie rozgrywanego poziomu stanie się posta.czalny (np. że celowastać z podziemnego tunelu. sytuację. Szturm w stronę pierwszych potężnych forty�kacji bazy wroga www. że ciężko lącej nas odległości nie doleciały do celu.cą myszki lub jednego z wolantów gamepada. sposób. jeśli wskażemy nim jakikolwiek obiekt zniszczonym w ramkach zobaczymy także krótkie filmy na silni. za pomopunkt wypadowy. Po kilku misjach pod ziemią nie automatyczne ułatwia grę. Teraz gracz ma do wyboru dwa tryby: celowanie automatyczne (Auto Aim) oraz ręczne (Manual Aim). I chociaż średnio nadaku gry ozdobione wzorem wielkiego ekranu czarnymi pa. dotyczą celowania. w której namierzony cel nieco się że się nie tyle tępienie szeregowych przeciwników.już kilka kroków dalej.do wroga. jest zupełnie różna. Warto sy bohaterów. zbierając ze sobą co przydatniejszych so. oczywiście. W jej przypadku wszystko zależy od wymagająca. jak się z pewnomy. przy czym niektóre mo0). granaopieczni. abyśmy do punktu wyjścia doszli całą drużyną w jej akciaż często pomaga nam on w uporaniu się z przeciwni. wprowadzono za to.ły. gdy ich zgubimy – jeśli wystarczająco długo nie będą mogli odnaleźć drogi. w jakich znajdują się nasi pod. broń zauważalnie bardziej szybkostrzelna od pistoletu. że drzwi śli wypalimy tuż przy przeciwniku. z jakim będziemy podróżować – pistolet plazmowy.go mały pistolet. jeśli chcemy ukończyć grę. silktóre muszą być jednocześnie wciśnięte i tylko jednej skrzyni. należą do nienu symbolizujące 4 stany. jaką komendę wydaliśmy ostatnio. takiego np. jeśli idzie o pełny arsenał. gdyż takie zachowanie posiada jakiestaniu się z zalanego wodą tunelu. zwłaszcza jeko przejść od jednego przełącznika do drugiego. Teraz możemy nosić przy sobie do 4 elene trwale ustalonym klawiszom (odpowiednio 7. to jest jednak umieszczenie na jednej z plansz 3 punktów. co już wcześniej sygnaBlobom możemy wydawać w czasie gry rozkazy. będą od nas wymagasiadający żadnych umiejętności specjalnych Teeka. jeśli oberwą. bowiem śród siebie. uzi.stolet jest bronią raczej powolną o niewielkiej sile. włączają się do walki. charakteryzująca się przede wszystkim większym bowiem zdarzają się miejsca.ci. gdzie możemy na tyle szyb. aczkolwiek nieco wolniejsza wersja pigo sami zwykle nie jesteśmy w stanie dokonać (zwykle. wydać polecenie czekaj. ale to akurat jestem szego boku.kiem pistoletu. Niekiea zdarzy się i tak. Będą to jednak wyłącz.żemy korzystać pod wodą. które wykonujemy grupowo.Rysunek 2.granatnik RPG-7. Towarzyszącym nam broni naraz. limity amunicji we wszystkich broniach z wyjątdo nich: podążaj.tualnym składzie. co daje łącznie 9 elementów uzbrojeślonymi zdaniami na poszczególnych etapach. podejść do drugiego przy. podkładającego ładunki wybuchowe uwolniono gracza od możliwości posiadania tylko jednej pod fundamenty bazy przeciwnika. Kolejne narzędzie obrootworzą się i bez pomocy kolegi). krawędzi czy też za nami po prostu nie nadążają. pistolet plazmowy. aby zmienić jej sposób działania. którą możemy przesuwać. Mały pinp. wiedząc. dlatego warto zwracać uwagę na to. czasem wędrować będziemy sami. I cho. a następnie jednocześnie wcisnąć oba guziki. W orientacji. Pamiętajcie. Ciekawszym pomysłem ny. że wydawanie komend jest nie. Najsłabszym punktem naszej drużyny jest głupota po. niekiedy towarzyszyć będzie staci towarzyszących – często wpadają do wody. Co najważniejsze.czas gry. Warto wiedzieć. nie wyróżniające się niczym spo. Co prawda tego rodzaju postacie po zabiciu odradzają się. że za ścianą dostałby zwyczajne manto. czy też Sylvestra. Oczywiście rozkazy przydają się również w sytuacji. o 4 więcej niż miało to miejsce poprzednio. gdy chcemy np. że podążać będzie za nami nawet i 7 ko. Podobnie ma się sprawa. Nierzadko nia.ba. Dla przykładu. poma. Jest on ba obok jednego z dwóch przełączników otwierających natomiast jedynym elementem uzbrojenia. legów. śrutówka. W zasadzie takim Blobem jest również nie po. I tak. aby nasz towarzysz gdzieś na nas zaczekał. będziemy musieli ustawić towarzyszącego nam Blo.stawiać naszych towarzyszy szczególnie daleko. lub po prostu strzelcisku. 9 oraz mentów uzbrojenia jednocześnie. to poza służeniem siłą ognia nic szczególnego do dzi Wam spacerów przez cały poziom celem odnalezienia zabawy nie wnosi.misje. stoletu. czekaj. granatnik. czy żaden z nich nie stoi na linii ognia. Pierwszy boss – komandor latających droidów 44 7/2010 . nia amunicji i dostępnego uzbrojenia. to ulepszona. że nasze strzały są w stanie uśmiercić również inne Bloby. 8. Radzę pamiętać.ty. użyj oraz wycofaj się przypisa. większa grupa Blobów stanie u na.kolwiek logiczne podstawy. idąc przy nam wyłącznie Teeka. Inaczej ma się sytuacja w przypadku pozostawionych gdzieś samym sobie kamratów.dy denerwuje też. rozwiązanie? Rolę dwóch pozostałych spełnimy my i Teeka.gą być dodatkowo podmieniane na inne – spotykane podgają 4 ikony umieszczone w prawym górnym rogu ekra. Trzymanie kolegów przy sobie oszczękiem. wyrzutnia kasetowa oraz zbędne. ale i tak lepiej mieć je przy sobie jak najdłużej.rozrzutem oraz zdecydowanie większą siłą. gdy bronić będziemy własnej bazy po wydo. Spark Pluga – mechanika zdolnego podłączyć Zmiany widać również w kwestii podejścia do zagadniesię do aparatury obcych.w stanie zrozumieć. Należą lizowałem. Śrutówka.ROZRYWKA aktualnie rozgrywanej misji. z którego modrzwi. aby nie zonie szeregowe Bloby. cze. karabin plazmowy. zostaną przeteleportowani nieopodal. a wiąże się to z okre. że mimo iż kazaliśmy im gdzieś zostać. w co zaopatrzone są działka plazmo. tj. Rysunek 4. Chcąc np. którym pierwsza część gry jest zupełnie obca. wprowadza ono bowiem do gry pewną dawkę realizmu oraz zauważalnie więcej swobody. Wszystko to zostało bardzo wygodnie pomyślane. strzelając sobie dla rozrywki. Poza tym klasycznie. prawdę mówiąc też mi się tak wydawało www. Również wyrzutnia kasetowa swoje korzenie znajduje w poczciwych granatach – jest to po prostu specjalna wersja granatnika zmodyfikowana w taki sposób. które grały w Blob Wars I: Blob Metal Solid – po. Dla osób. lub po prostu rakietnica.ka umożliwiającego dostanie się na miejsca niedostępwe i właśnie tam możemy po raz pierwszy zaobserwować ne piechotą. co czyni z karabinu plazmowe. że tam ilość amunicji była nieograniczona i dotyczyło to wszystkich elementów uzbrojenia.pędzimy do wyjścia ścigani odstąpienie śrutówki w każdej chwili. szarżować z uzi. Ostatnia. a przynajmniej – niezbyt często. gdy rzucimy okiem na pojemność magazynków. Zdecydowanie bardziej szybkostrzelna odmia. wyposażyć się w pistolet plazmowy. Amunicji w grze jest sporo . Ka. a od razu eksplodują. skądinąd znanego pewnie większości z Was go w akcji. które w kontynuacji uległy zmianie. każdym poziomie znajdziemy ich kilka rozlokowanych na co pozwala np. Autorzy postanoosobom.sorbujące część obrażeń. warprzeciwnika. Warto też chociaż wspomnieć o wprowadzeniu harabin plazmowy to to. że zdecydujemy się na Rysunek 3. że w jej przypadku nie odbijają się one przez jakiś czas od ziemi. gdy salwami z broni przeciwników i działek warownych znajdziemy ją na ziemi. Jej głównymi zaletami są szybkostrzelność oraz duża siła. że po wybuchu pociski eksplodują w kilka kolejnych rozrzucanych dookoła. Co zaś tyczy się podmieniania broni. Teraz wyraźnie je udoskonalono głów.Blob Wars – Episode II niejsza. Granaty natomiast to jedna z broni znanych to wymienić jeszcze sposób zapisu gry.lpmagazine. Na szczęście nie jest to wybór permanentny i jeśli powiedzmy. podobniąca się od granatów ręcznych głównie tym. ale zapewniam. musieliśmy odłożyć na chwilę inne bronie.org 45 . wygląda to następująco. Granatnik to broń róż.nu gry. jednocześnie rzucając na tyle sensownie. Przykładowa misja z ograniczeniem czasowym . umożliwiając tym samym każdemu z grających dostosowanie posiadanego oręża do własnych upodobań.Pointy.wili wykorzystać dobrze znane większości graczy Save przednią część gry. Hmm. że nie będziecie chodzić po planszy. punkty umożliwiające zapisanie gry. przypomnę. będziemy mogli wstawić ją na dawne miejsce. i prawdopodobnie najbardziej zabójcza – granatnik RPG-7.szym miejscem będziemy mieli możliwość zapisania stacić granat. Osobiście podoba mi się nowe podejście do kwestii uzbrojenia oraz amunicji. będziemy musieli zdecydować się.(szczególnie jeśli nie stronicie od gier z gatunku FPP) czy na pistoletu plazmowego. Nie żeby była ona jakoś szczególnie ograniczona. że z pewnością przed każdym ważniejboki właśnie granaty.schody zaczynają się. czy chcemy zrezygnować ze śrutówki czy z uzi.pasa ochronnego tworzącego wokół nas pole siłowe abgo prawdziwe narzędzie zagłady. Dawniej było to niemożliwe i aby rzu. Zwykle na nie dzięki możliwości przypisania im odrębnego klawisza. a dodatkowo jeszcze na pewien czas ogłuszająca Z innych rzeczy. a w celu uzyskania konkretnych płynących z niego korzyści. płynącą z ekranu senność. niedopuszczenie do zabicia żadnego z zaginionych w akcji żołnierzy. co widzimy. To wszystko sprawia. Jeśli miałbym wypowiadać się odnośnie jakości przygotowanych efektów. O dziwo w przypadku opisywanego dzisiaj tytułu wcale mi one nie przeszkadzały. którą podobnie jak w części pierwszej muszę zdecydowanie pochwalić. Gdy wyjdziecie z kamiennych tuneli na otwartą przestrzeń i powita Was krajobraz mieniący się barwami wschodu słońca. Tak. Zacznijmy od tych pierwszych. ale bardzo realistycznie i z cieszącym oko wyczuciem. w którym jest obecny. zwłaszcza ostatni motyw zapadł mi w pamięć i szczerze żałuję. W kwestii efektów dźwiękowych. że nie możecie go przy okazji czytania tejże recenzji usłyszeć. toteż i tutaj nie narzuca się nam jakichś sztywnych norm postępowania. I tutaj jednak co nieco się zmieniło. Pora na kilka słów o udźwiękowieniu gry. których to podobnie jak poprzednio ratujemy i odsyłamy do domu. Mało tego. którym je przypisano. do których zaliczę np. Wszystko. bardzo czytelRysunek 5. Rozpocznę od muzyki. że wszystko zostało wykonane rzetelnie i jest wystarczająco dopracowane? Z całą pewnością nie jest to trójwymiar zaimplementowany dla zasady. Po przeciwnej stronie barykady natkniemy się również na starych znajomych ne menu główne. Już nie wystarczy. a że żadne z urządzeń nie jest przypisane do określonego jeńca. Tylko czy tak naprawdę warto Wam o tym wszystkim przypominać. skoro wyraźnie widać. Co równie istotne. które teraz dodatko- 46 7/2010 . i tutaj będziemy mieli zadania główne niezbędne do ukończenia misji oraz dodatkowe często wymagające od nas większej pomysłowości czy spostrzegawczości. nawet jeśli jest to wojna tylko na ekranie komputera. np. Niektóre misje stawiają nam pewne warunki. ale również własnej prezencji. mocna bojowa kompozycja docierająca do nas razem z wyjącym alarmem w bazie przeciwnika czy w końcu nostalgiczna. Im dalej w las. Jednym słowem – wielkie brawa. bez wątpienia druga część przygód żołnierza z rasy Blo- bów znacznie bardziej emanuje ponurą atmosferą wojny. którzy czytali recenzję w numerze marcowym. Pora na krótkie omówienie wszystkich niewymienionych do tej pory plusów oraz minusów opisywanego tytułu. Jest to moim zdaniem jedna z lepszych ścieżek dźwiękowych. żadna inna gra twórców nie ukazała się jak dotąd w trójwymiarze. aby była ona teleportowana w rodzinne strony. Ci.wykonanych po prostu dobrze. pamiętają zapewne. warto pamiętać. tym lepiej. wyraźnie słychać. przede wszystkim dlatego. Jeśli idzie o grafikę. Do tego prezentuje się on naprawdę dobrze. że możemy powiedzieć o pewnym kroku naprzód w stosunku do pierwszej części gry. że zostały nagrane czysto i pasują do zdarzeń. Tak. że poprzednia część gry była dwuwymiarowa. że dosłownie wejdziemy na taką postać. Nie wolno nam oczywiście zapomnieć o wspomnianym w jednym z pierwszych akapitów efekcie rozmycia obrazu podczas ruchu. co również nie jest bez znaczenia. Nastrojowa muzyka towarzysząca nam podczas podziemnych eskapad.ROZRYWKA nie jak u poprzednika. Rzecz jasna poziomy zawierają każdorazowo tyle czytników. a jednocześnie pełna nadziei na zwycięstwo melodia przygrywająca naszej drużynie dzielnie kroczącej przez łąki w stronę potężnych fortyfikacji warowni przeciwnika. iż narzekałem na potępieńcze krzyki uśmiercanych przeciwników. zaskakuje sprawiającym bardzo dobre wrażenie deszczem. przygotowany podkład muzyczny niemalże zawsze doskonale pasuje do poziomu. ładnie wykonanych wybuchów. jaką zdarzyło mi się słyszeć w grach o otwartym kodzie źródłowym. wykonane zostało dosyć oszczędnie. że gra wciąga nie tylko za sprawą ciekawie opowiedzianej historii czy grywalności. W kwestii oprawy audiowizualnej gry jest naprawdę dobrze. Już pierwsza misja. to myślę. ilu jest pojmanych towarzyszy. Dla każdego z MIA (Missing In Action) będziemy musieli znaleźć tzw. Dochodzą do tego drobne smaczki w rodzaju kurzu unoszącego się w powietrze przy przesuwaniu skrzyń. poczujecie lekką. że całość posiada właściwy sobie tylko klimat budowany z pewnością znacznie mniej kolorowymi teksturami o zdecydowanie bardziej stonowanych barwach niż miało to miejsce poprzednio. bąbelków znaczących pod wodą tor lotu pocisków czy wygląd niemalże wszystkich pojawiających się w grze obiektów trójwymiarowych . czytnik dalekiego zasięgu pozwalający na odesłanie go do domu. gdy Bob wyrusza na poszukiwanie zaginionego zwiadowcy. wydawały się zwyczajnie mniej drażniące dla ucha. jakbyśmy sobie tego życzyli. Ocena gry: 8+/10 MACIEJ MROZIŃSKI Od kilku lat. Zwłaszcza ta druga możliwość wydaje się rewelacyjnym pomysłem. że świadczy to na jej niekorzyść. że do kamery można się przyzwyczaić i tak naprawdę poza pewnymi niedogodnościami pracuje ona naprawdę sensownie. gdy nasi bohaterowie. ciekawszy arsenał.pl www. SDL TTF.parallelrealities. prawdopodobnie dlatego.rpm oraz tradycyjnie . gdy się o tym dowiedziałem. Z własnego doświadczenia wiem natomiast. Gra przeznaczona jest po prostu dla starszych graczy. • sporych rozmiarów poziomy. Gra dostępna jest wyłącznie na systemy z rodziny GNU/Linux.deb. różnorodne misje. Dodatkowe opcje. Kto grał w jedne z pierwszych platformówek 3D wydawanych na PC-ty w rodzaju Gex czy Tonic Trouble. bardzo przyjemną nowością są drobne urozmaicenia w rodzaju misji na czas sprawiających. gdzie wyraźnie jest napisane. gdzie umieszczono pakiet . Jeśli bowiem gramy powiedzmy na gamepadzie. Boli też brak możliwości dowolnego przybliżania i oddalania obrazu (dzieje się to wyłącznie niezależnie od nas. Naprawdę kłopotliwe są jednak sytuacje. Przeciw: • brak możliwości pełnej modyfikacji klawiszologii. Grę znajdziemy w repozytoriach co popularniejszych dystrybucji oraz oczywiście na stronie projektu dostępnej pod adresem http://www. • nielogiczne niekiedy zachowania naszych towarzyszy. • ciekawie pomyślane. • ryzyko utknięcia w elementach otoczenia. Sweeneya zapraszam dodatkowo do przeprowadzonego przeze mnie. Entuzjasta rozwiązań alternatywnych i wolnego oprogramowania. a jedyną zmianą jest wzbogacenie ich o pakiet mesa. ma jak na zręcznościówkę naprawdę wciągającą historię – teraz wiem dlaczego. tak naprawdę chodzi. że opisywana dziś wersja gry ma być rzekomo ostatnim jej wydaniem? Wpływ na to miało drugie hobbystyczne zajęcie twórcy obu Blobów – pisanie. SDL Image. Mam tutaj na myśli wszystko poza wydawaniem poleceń pozostałym członkom naszej drużyny. Kwestia ta jest na szczęście konfigurowalna i obecność w grze krwi możemy bez najmniejszego problemu wyłączyć. nie ma się co temu specjalnie dziwić. że nie do końca możemy ustawić ją tak. w zbyt ciasnych tunelach). Co zaś tyczy się samej gry. niestety. wchodząc w Opcje gry.org 47 . rozpakować je. że chociaż opisywana wtedy poprzednia część przygód Boba jest zręcznościówką.paczkę ze źródłami. bowiem gdy czytacie te słowa.php. co mam na myśli i co to znaczy niekomfortowo zachowująca się kamera. jak w jednym z pierwszych akapitów mówiłem o tym. Osoby zainteresowane osobą Stephena J. które wykonuje gracz. ale również stylem gry. że tworzenie gier zeszło na dalszy plan w życiu głównego twórcy gier spod znaku Parallel Realities i prawdę mówiąc. czy jest przy tym obecna krew czy też nie. • bardzo dobra oprawa audiowizualna.lpmagazine. Z pomocą natomiast przychodzi strona domowa gry. zwłaszcza w pierwszych misjach. porusza ona po prostu tematykę niewłaściwą dla młodszego odbiorcy (bo to o tematykę czy konkretnie Tabelka „Za i przeciw” Za: • udane przeniesienie serii w trzeci wymiar. nie zaś o to. Jest to swego rodzaju ewenement. że przydadzą się pakiety takie jak SDL. Sweeneya – twórcy gry. SDL Mixer. Kontakt z autorem: maciej_mrozinski@o2. krótkiego z nim wywiadu znajdującego się w tym numerze Linux+. byłem zaskoczony. będzie wiedział. jak to zarzekałem się. że tak naprawdę jeśli w grze mowa jest o wojnie i strzela się do kogoś z takiej czy innej broni bądź ćwiartuje mieczem (tego akurat w tym przypadku nie uświadczymy).uk/projects/blobAndConquer. ale nie zdziwiony. W przypadku opisywanego dziś tytułu jest inaczej. a następnie w nowo utworzonym katalogu wydać polecenia make oraz make install.Blob Wars – Episode II wo może być nawigowane za pomocą myszki czy prawdopodobnie dowolnego kontrolera gier. Prawdę mówiąc. Ci. tych z rodziny GNU/Linux. pamiętają pewnie. • większy. domowy użytkownik GNU/Linuksa. . pierwsza książka Stephena J. Co tyczy się niezbędnych do spełnienia zależności. jest już dostępna w sprzedaży. 90% operacji możemy wykonać bez przesuwania rąk na klawiaturę. Zainstalowany w systemie program uruchamiamy poleceniem blobAndConquer. działania. Czy pamiętacie. co wcale nie znaczy. • możliwość posiadania drużyny. że pisanie nie byle jakie. jeśli mówimy moi Państwo o wpływie na psychikę dziecka. że różnią się one nie tylko wyglądem czy zadaniami.co. co w ogólnym mniemaniu czyni ją niewłaściwą dla najmłodszych graczy. gdyż zwykle produkcje otwarto-źródłowe trzymają się trzech systemów. do źródeł nie dołączono żadnej o nich informacji. Z mojej strony dodam tylko. pod tytułem The Honour of the Knights będąca jednocześnie pierwszą częścią serii The Battle for the Solar System. Zlib oraz OpenGL (z zaznaczeniem że SDL TTF wymagać będzie Freetype co jest dosyć oczywiste). to nie nadaje się ona moim zdaniem dla młodszych graczy i nie ma znaczenia. Dla części z Was minusem będzie również spora krwistość gry. Osoby chcące samodzielnie skompilować program w pierwszej kolejności muszą pobrać źródła. Kwestią poniekąd niewygodną dla niektórych graczy może okazać się sposób pracy kamery. Czasem zdarza się. codzienny. Windows oraz systemu MacOSX. którzy mieli w ręku numer marcowy. I trzeba przyznać. zacinają na niektórych elementach otoczenia – to zdecydowanie wymaga poprawy. Niemalże identyczne zależności figurują w pliku budulcowym gry dla dystrybucji Arch Linux. np. a następnie ustawiając Krew na Wyłącz. czy przy okazji pojawia się na ekranie trochę czerwonego koloru). została napisana w języku zwanym AMOS. Poza tym od pewnego czasu chciałem napisać własną grę. podobnie jak odtwarzacz MP3. niż samo kodowanie. gdy przeczytałem w magazynie “Amiga Format”poradnik. Myślę. Gdy skończyłem pisać kod i pobawiłem się przez chwilę grą. odwoływanie się do zwisających wskaźników i tak dalej. Pamiętam. Jako że w tym numerze zakończyłem recenzję serii Blob Wars – jednej ze sztandarowych pozycji Parallel Realities. postanowiłem porozmawiać z jednym z jej założycieli. sugestie itp. prawdopodobnie jedną z najcięższych rzeczy przy tworzeniu gier okazało się rysowanie grafiki. Tym sposobem ludzie wiedzieliby. aby wszystkie tytuły były sygnowane określoną “marką”. Mo- 48 7/2010 . Nigdy nie byłem za dobrym rysownikiem. Tak naprawdę z nazwą Parallel Realities nie wiążę się żadna historia. Co skłoniło Cię do napisania pierwszej gry? Wszystkie wasze gry na PC-ty posiadają natywną wersję dla systemów z rodziny GNU/Linux. Linuksa zacząłem używać w 2001 roku przy okazji kopii Redhata z pulpitem KDE 2. moja kamera internetowa dobrze z nim współpracuje. którą stworzyłem. który sprawił. Jak postrzegasz te systemy w porównaniu z innymi? Zaczęło się. jakby pochodziły od jakiejś konkretnej firmy. Również samo KDE było o wiele wolniejsze niż jest obecnie. Sweeneyem Jednym z twórców Parallel Realities P arallel Realities to grupa dobrze znana wielu linuksowym graczom. popełniałem mnóstwo błędów takich jak nie zwalnianie pamięci. że przy nim pozostałem. po prostu uznałem. Zapraszam do lektury. Posiadał on jednak pewien urok. Od 15 lat pisze gry komputerowe oraz. Sweeney – jedna z dwóch osób tworzących Parallel Realities. na przykład dźwięk. nie działało. chciałem. Tak czy inaczej. Gdy przeszedłem na C (niedługo po rozpoczęciu przygody z Linuksem). Od ponad 9 lat tworzą oni jedne z najbardziej grywalnych tytułów na linuksowe platformy. Społeczność często wysyła informacje o błędach. że Linux przeszedł od tego czasu długą drogę – wszystkie funkcje mojego laptopa działają. że to dobrze brzmi. Był to język interpretowany . o czym mało kto wie – powieści. W tamtych czasach nie miałem jeszcze nazwy zespołu. ale większość prac jest dzielona pomiędzy nas dwoje.WYWIAD Rozmowa ze Stephenem J. ale tylko ja i mój brat. jak początkowo przypuszczałem. odkryłem.wiele rzeczy. Skąd nazwa zespołu i jak wyglądały Twoje początki w pisaniu gier? Pierwsza gra. że programowanie gier nie jest tak skomplikowane. Gdy zacząłem pisać gry (jeszcze za czasów Amigi). tym samym bardzo prosty dla początkującego. a przyszłość ich gier stoi pod znakiem zapytania lub przynajmniej szykuje się na spore zmiany w składzie głównych developerów. Nie było to zachęcające doświadczenie . więc na początek wziąłem ten gotowy kod i zacząłem go rozwijać. bo nie trzeba martwić się o przydzielanie pamięci i tym podobne. więc wszystkie gry zawierały sformułowanie “Stephen Sweeney prezentuje”.. Co okazało się najcięższe w tworzeniu Twoich pierwszych gier? Jesteś główną postacią w grupie Parallel Realities. Wywiadu udzielił mi Stephen J. łatki. że te gry zostały zrobione przez tę samą grupę osób. że listy wskaźnikowe pozbawiły mnie sporej części czupryny. jak stworzyć prostą grę. więc sprawiało mi to znacznie więcej kłopotów. Ile osób jest zwykle zaangażowanych w pracę nad grą w przypadku Parallel Realities? Być może będzie to zaskoczeniem. Transformers i Battlestar Galactica. Richard zaczął ją rozwijać nieco bardziej. Większość Waszych gier została umieszczona w realiach science-fiction. w której gracz musiałby zrobić coś innego na każdej planszy. Co jest w niej Twoim zdaniem najbardziej interesujące? The Legend of Edgar tak naprawdę powstała jako rezultat pisania kilku poradników online. są dla mnie zbyt pogmatwane. gdzie gracz musiał łapać małpy. Właśnie skończyłem opisywać serię Blob Wars. bezpiecznie przeglądać sieć. które komponowałyby się ze środowiskiem i nastrojem. w świecie. umożliwiając skończenie gry w 100%. a później tylko je pokolorować. Chciałem mieć dobre kawałki. Musiałem przesłuchać kilka setek MODów w czasie tworzenia gier. Jako że dorastałem w otoczeniu Star Wars. Jeśli chodzi o Książki science-fiction. bo tworzy się ją o wiele łatwiej i szybciej. Sweeneyem gę zarządzać moją kolekcją muzyki. a w końcu powstała z tego prawdziwa gra! Podjęliśmy decyzję. Pomysł z ratowa- www. w którym tak duże znaczenie ma Internet. Skąd zainteresowanie tego rodzaju rzeczywistością? Głównie z programów telewizyjnych w rodzaju Babylon 5 i gier takich jak Wing Commander. że korzyści płynące z używania Windowsa są ciągle zbyt małe w stosunku do jego wad. do których po prostu strzela się. Jest to możliwe dopiero po tym.lpmagazine. ponadto walki z nimi są każdorazowo innym doświadczeniem. a programy takie jak Open Office pozwalają mi pisać sporych rozmiarów powieści bez żadnych problemów. strzelając do wszystkiego. Obie części gry mają naprawdę imponującą ścieżkę dźwiękową. mam kogo za to winić. którzy nie mogą zostać uwolnieni przy pierwszym przechodzeniu danego poziomu. także te nie obsługujące OpenGL. gdyż prowadziło do nielinearnej rozgrywki i pozwalało graczowi na ponowne odwiedzanie wcześniej ukończonych plansz. Bossowie dają sporo zabawy. jak gracz zdobędzie przedmioty umieszczone w późniejszych etapach gry. Moim zdaniem przyczyniło się to w dużym stopniu do wzrostu popularności gry. niem Blobów zaginionych w akcji wziąłem z Ape Escape na Playstation. niż gry trójwymiarowe. Podczas gdy Maci stają się coraz popularniejsze.Rozmowa ze Stephenem J. nie są zbyt interesujący. Linux jest zwyczajnie tańszy i spokojnie może sprostać moim wymaganiom. Osobiście nigdy nie wróciłbym do Windowsa. Prawdopodobnie najbardziej interesującą część gry stanowią dobrze przemyślane zagadki. póki nie padną. Znajdowanie dobrych kompozycji było długim i zawiłym procesem – spośród wszystkich utworów. którą ze sobą niosły. tę energię. Richard (mój brat) zaczął pisać trochę bardziej złożony poradnik. Są mniej pracochłonne i łatwiej przeportować je na inne platformy. niewiele ich czytałem. Po złożeniu tego do kupy. to sprawa jest prosta – bardzo łatwo jest narysować kulę. która była strategią turową). które przesłuchałem. Skąd pomysł na fabułę i dlaczego Bloby wyglądają tak jak wyglądają? Pomysł na Blob Wars był prostą ewolucją chęci stworzenia gry platformowej.org 49 . jako że większość gier była strzelankami (poza TANX Squadron. Sądzę. Znalezienie dobrej muzyki do gry zawsze miało u mnie wysoki priorytet. a także spora ilość przeciwników. zależnie od posiadanych umiejętności. że bossowie. zamiast biec z lewej do prawej. Wyszliśmy z założenia. Efekty dźwiękowe pochodzą z publicznych repozytoriów i różnych projektów open-source. w związku z tym. większość ludzi spokojnie mogłaby używać Linuksa. Jeśli chodzi o wygląd samych Blobów. Podobnie jak tam. ponieważ nie ma ku temu żadnych powodów. Po Blob Wars II jest to powrót do grafiki 2D. żeby pozostać przy zabawie w 2D. umieściłem na planszach określoną liczbę zaginionych w akcji. Ścieżki dźwiękowe do obu gier z serii Blob Wars pochodzą z dwóch głównych źródeł: The Mod Archive oraz z Aminetu – publicznego repozytorium Amigi. Uważam. Kto jest za nią odpowiedzialny i jak długo zajęło zrobienie pełnej oprawy dźwiękowej dla obu gier? Co możesz nam powiedzieć o The Legend of Edgar – Waszej pierwszej grze fantasy. Lubiłem te przygody. że dzisiaj. Chciałem stworzyć grę. dodać oczy (w przypadku Boba również bandanę). Po opracowaniu podstaw. poruszający takie kwestie jak obiekty czy system skryptów. może 1 na 50 wydawał się w porządku. Jednak. biorące udział w akcji zupełnie jakbym obserwował ją na ekranie. ale byliśmy zdania. jakie spotykają obywateli imperium. a dużo mniejszy na akcję. zazwyczaj czytam horrory. których podziwiam. GTKRadiant. jak zostają uwikłani w ściśle tajny projekt i podsłuchaniu plotek o okropnych rzeczach. że potrzebuję zrobić coś innego. To nieuchronnie prowadzi do stanięcia twarzą w twarz z wrogą siłą. aby zachować to w tajemnicy do czasu. że pisanie powieści jest trochę łatwiejsze. którzy po tym. wie. Mówimy o Tobie jako o twórcy gier. Lubię również prace Iain Banks. prawda? Oczywiście. To nie sprawdza się zbyt dobrze przy tworzeniu powieści i pierwszy szkic książki wyglądał bardziej jak scenariusz. że istnieje już zbyt wiele strzelanek FPP. modelowania w Blenderze do tworzenie elementów gry. Epizod III. który doprowadzi serię do końca. kto przeszedł drugą część gry. Jeśli zdecydowalibyśmy się na widok z perspektywy pierwszej osoby. poza tym potrzebowałem odpoczynku od pisania gier. ale czy sam jesteś graczem? Jeśli tak. Robiłem to. wchodząc na stronę: www. JK Rowling. spośród których dwie można określić jako beletrystykę. Jest to powieść science-fiction osadzona w realiach roku 2617. brakowało w niej wyrazistych postaci. Więc również tu pozostajesz wierny realiom science-fiction. Musieliśmy nauczyć się nie tylko OpenGL. Większość z inspiracji dla mojej pracy czerpię z filmów i seriali science-fiction. Możecie dowiedzieć się więcej. Druga część serii Blob Wars to Wasza pierwsza gra w 3D. która zniszczyła imperium. Jego częścią tego staje się tych pięciu pilotów. a jeszcze jedna będzie tytułem fantasy. Jednakże nie zdecydowałem jeszcze. Co możesz nam o niej powiedzieć? Moja pierwsza powieść nosi nazwę “The Honour of the Knights”. że nadejdzie czas. niektóre dystrybucje Linuksa usunęły oprawę dźwiękową z serii Blob Wars. rozpoczynają odkrywanie galaktycznej konspiracji. Ale było to naprawdę wyczerpujące doświadczenie – większość naszych gier była skończona po upływie około 18 miesięcy spokojnego programowania. Każdy. upewniając się. jakie tytuły open-source i jakie komercyjne należą do Twoich ulubionych? 50 7/2010 . Zarówno wojsko. ale również BSP. co wyszło z Blob And Conquer. że zakończenie pozostawia fabułę otwartą na trzeci epizod. ale ani jednej linijki kodu. aby tak postąpić. Reddicka. To właśnie na początku książki wpadają na pomysł rozwiązania sprawy i muszą jeszcze tylko wcielić swój plan w życie. szarą strefą). kładąc większy nacisk na cechy charakteru poszczególnych postaci. jestem bardzo zadowolony z tego. Jeżeli chodzi o pisarzy. Pisząc pierwszą wersję powieści. Natomiast ukończenie Blob And Conquer zajęło nam ponad 21⁄2 roku. zostawiając w nich samą grafikę.battleforthesolarsystem. który okazał się znacznie trudniejszy niż dwuwymiarowy. że jest nie do pokonania i przeniknęła galaktykę już całkowicie. Fabuła skupia się na grupie pilotów gwiezdnych myśliwców. że poza pisaniem gier piszesz również powieści. Nie pogardzę też od czasu do czasu literaturą ze świata zbrodni i beletrystyki. Gra prawdopodobnie wróci do swoich dwuwymiarowych korzeni. Czy coś jeszcze miało wpływ na tę decyzję? Wiem. Jeff Lindsay oraz Roberta V. ale myślę. Terry Pratchett. gdy powrócę. to są to Stephen King. Sporo zabawy mieliśmy zwłaszcza z kamerą (gra należy do gatunku TPP). Zainteresowani gracze mogą pobrać kompletne wersje ze stron Parallel Realities. Może po prostu robię się na to za stary. że nadszedł właściwy czas. zaobserwowałem również. że pochodzenie niektórych efektów i kompozycji nie może być wiarygodnie ustalone (i w niektórych przypadkach temat licencji stał się poniekąd tzw. Książka jest pierwszą częścią trylogii znanej pod nazwą “The Battle for the Solar System”.WYWIAD że w ostatnich miesiącach pojawiło się trochę wątpliwości w kwestii muzyki i efektów dźwiękowych w grach. Czy planujesz kiedyś bardziej intensywnie powrócić do pisania gier? Obecnie nie mam żadnych planów. S. Napisałem trochę notatek i planów. Nie chcieliśmy. Pisanie gier bywa bardzo czasochłonnym zajęciem. Nie tak dawno wydałeś swoją pierwszą książkę. od kiedy miałem 15 lat. że nie utrudni zabawy i nie będzie ustawiać się w dziwnych pozycjach. kiedy ta gra miałaby się pojawić. aż uda im się znaleźć wyjście z sytuacji. science-fiction i fantasy. i dotarło do mnie.com. Na rzecz pisania powieści na chwilę odłożyłeś na bok pisanie gier. te problemy oczywiście by zniknęły. Napisałem ją później po raz drugi. Jak oceniasz rezultaty? Jakie były Twoje inspiracje literackie i których autorów najbardziej cenisz? Jako że to nasz pierwszy projekt w 3D. aby napisać tę ostatnią grę – Blob Wars. Po prostu poczułem. a nacisk będzie położony po równo na odkrywanie i akcję. aby B&C dołączyło do tej grupy i już zawsze było postrzegane przez jej pryzmat. gdy ludzie rozprzestrzenili się już w całej galaktyce. jak i rząd dobrze wiedzą o zagrożeniu i robią co w ich mocy. Wygląda na to. wynikających z faktu. aby tworzyć poziomy i wszystkich innych rzeczy idących w parze z tworzeniem trójwymiarowego świata. widziałem postacie odgrywające sceny. jako ucieczkę od rzeczywistości. Jednak planuję napisanie kilku innych książek. co chciałbyś powiedzieć naszym czytelnikom? Koniecznie wejdźcie na www. będący prawdopodobnie jedną z najtrudniejszych gier. Postanowiłem więc trochę zrobić. aby dowiedzieć się więcej o tej trylogii Sci-fi. Aczkolwiek jednym z głównych powodów stworzenia tytułów w rodzaju Project: Starfighter.pl www. dla którego Grand Theft Auto 3 było tak popularne – bo dawało graczowi swobodę pojechania gdziekolwiek i zrobienia czegokolwiek. Jeśli chodzi o tytuły open-source.lpmagazine. nie było na niego żadnych gier. Dodatkowo. w które chciałbym grać. Jeśli nic się nie zmieni. to wszystkie te rzeczy są tak naprawdę nieistotne. korzystam ze ScummVM do grania w gry takie jak The Dig. czy Blob Wars było to. które oferują. gram obecnie w większość gier dla tej konsoli. Jakie gry stanowiły dla Ciebie inspirację podczas tworzenia serii Blob Wars? W przypadku Blob Metal Solid były to Ape Escape (na Playstation) i The New Zealand Story (automaty [gra ukazała się także na wiele domowych komputerów i konsol. Naprawdę polecam ten tytuł (niestety. 19 lutego itd. 12. Kontakt z autorem: maciej_mrozinski@o2. Nieliniowy styl gry w Metal Blob Solid był czymś. Amiga. Z początkiem lutego (2010 – dopisek: autor) planuję udostępnić treść książki na zasadach licencji Creative Commons.com. domowy użytkownik GNU/Linuksa.hakin9. Ostatnio dobrze bawiłem się przy Fallout 3 i Oblivion. Pobierz za darmo nowy numer! Co Twoim zdaniem jest najważniejsze w dobrej grze? Bez wątpienia grywalność. jest on możliwy do nabycia jedynie na terenie Stanów Zjednoczonych). Gra może wyglądać i brzmieć naprawdę dobrze.Jako że jestem posiadaczem PS3. Entuzjasta rozwiązań alternatywnych i wolnego oprogramowania. Połączenie łapania wszystkich zbiegłych małp z Ape Escape z platformową rozgrywką oraz elementem ratowania znanym z New Zealand Story dało wspaniałe rezultaty.).org .org www. czytelnicy będą mogli przestawić się na publikacje w sieci z nowym rozdziałem udostępnianym w każdy piątek (5. MACIEJ MROZIŃSKI Od kilku lat. Czy jest jeszcze coś. ale jeśli nie daje radości z gry. pomysł z posiadaniem tylko jednej broni i zbieraniem ulepszeń od przeciwników pochodzi z New Zealand Story. Aktualnie gram w mroczny RPG w realiach fantasy pod tytułem Demon's Souls.battleforthesolarsystem. co bardzo mi się podobało już w trakcie tworzenia. np. Uwielbiam otwarte światy i możliwości. Sądzę. w jakie grałem od dawna. codzienny. NES czy Sega Mega Drive – dopisek: autor]). że gdy zaczynałem korzystać z Linuksa w 2002 roku. że to jest właśnie powód. Bardzo dobry zasięg także w pomieszczeniach oddalonych od routera. Tematy dbania o środowisko są od pewnego czasu bardzo modne wśród producentów sprzętu.. Zauważmy również. Ot czysta ekonomia. Wszystkie przeznaczone dla prędkości 10 lub 100 Mbit. Szkoda. dwa standardowe złącza antenowe typu R-SMA. Szkoda też. 32 MiB pamięci DDRAM. 8 MiB pamięci flash. a ikony im przypisane bardzo intuicyjne. że urządzenie pracuje pod kontrolą Linuksa. Użytkownik może jednak nieco się rozczarować. Urządzenie prezentuje się bardzo dobrze na tle konkurencji. Ale to już kwestia procesora i pamięci. który pozwala na konfigurację urządzenia bez konieczności łączenia się z nim z poziomu przeglądarki. błyszcząca i owalna. co umożliwia w bardzo prosty sposób współdzielenie zasobów w sieci. Może lepszym rozwiązaniem przy implementacji technologii Storage Link byłoby dołożenie drugiego.0 oraz serwer mediów kompatybilny z UPnP AV. jest na pewno fakt. gdyż w zamyśle zostało wykonane z surowców wtórnych. Diody umieszczone są na frontowej części urządzenia. Całość przeznaczona jest dla systemu Windows bądź Mac OS. zasobów sieciowych oraz dysku twardego podłączonego do routera. W Linuksie niestety nie ma takiej możliwości. mógłby nasuwać na myśl pogląd. co pozwala na podłączenie bezpośrednio do routera drukarki czy dysku twardego. Fakt.0 certyfikatu 802. Na stonowanym pudełku widnieje nawet jego logo. stabilny i bezpieczny system doskonale sprawdza się w routerze. podczas gdy użytkownicy korzystają ze współdzielonego dysku sieciowego. że kopiowanie na dysk poprzez router jest znacznie wolniejsze (nawet kilkukrotnie). a ilość pamięci RAM – za mała. Użytkownik nie mający doświadczenia nie będzie mógł więc skonfigurować routera i komputera w sposób opisywany w skróconej instrukcji obsługi. Jest czarna. Przeciążenia powodować może jednak próba jednoczesnego korzystania z współdzielenia łącza internetowego. iż pracuje on pod kontrolą systemu Linux. że nie udało się zrobić więcej w kierunku otwartego oprogramowania. natomiast bardziej opłacało się przygotować oprogramowanie do jego obsługi dla bardziej popularnych systemów. że do urządzenia można dostać się jak do każdego zdalnego Linuk- 52 7/2010 . Przejdźmy do parametrów technicznych.RECENZJA Router Linksys WRT160NL oraz adapter WiFi Linksys WUSB600N P ierwszą sprawą. że inne firmy w ogóle nie myślą nawet o Linuksie. ASP (przygotowanej przez Microsoft). Pudełko jest oczywiście bardzo proste. Miłym dodatkiem jest tutaj port Storage Link oparty o USB 2. Obudowa routera jest bardzo interesująca. łączymy się ze stroną stojącą na nim napisaną w technologii.11n. Mimo wszystko jednak. że konfigurując router z poziomu przeglądarki internetowej. Poza tym na tylnej ściance znajdują się także 4 porty typu RJ45 dla sieci LAN oraz jeden port RJ45 dla sieci WAN. Działanie routera stoi na przyzwoitym poziomie. gdyż dołączone na płycie oprogramowanie nie ma zbyt wiele wspólnego z Linuksem. Do warunków domowych nadaje się idealnie – kilka klientów podłączonych czy to przewodowo. Procesor okazuje się tutaj za słaby. dedykowanego procesora? W ten sposób można by uniknąć przerw w dostępie do sieci WAN. niż bezpośrednio z komputera. biorąc pod uwagę fakt.. wspiera draft w wersji 2. Posiada bowiem procesor taktowany częstotliwością 400 Mhz. czy to bezprzewodowo nie powoduje jego przeciążenia. ale to i tak wiele. o której warto wspomnieć przy opisywaniu routera WRT160NL. Linux – gotowy. Z przodu znajduje się przycisk Chronionego WiFi. Router doskonale współpracuje z systemem Windows 7 – nie wymaga żadnego dodatkowego oprogramowania. Router Linksys WRT160NL oraz adapter WiFi Linksys WUSB600N sa. Oprócz oczywistych funkcji. Jego instalacja jest bardzo prosta – szkoda tylko. pendrive'y. Istnieje jednak pewien mankament – oprogramowanie zbudowano na bazie linuksa. Skoro mamy możliwość montowania dysków twardych.org 53 . funkcji client bridge. mamy Reklama dodatkowo SNMP. jak dostosowanie mocy TX. Wymaga to kilku zabiegów poszerzających możliwości oprogramowania. co pociąga za sobą problem z włanościowymi systemami plików. jakimi bez wątpienia są dyski twarde. iż jego źródła są ogólnie dostępne. repeatera. że router może zostać wzbogacony także o paczkę do torrentów. Powłoka SSH umożliwia nam logowanie się zarówno przy użyciu loginu i hasła. przez SSH. Ma- www. Warto jednak takową zmianą się zainteresować. Linux na routerze jest praktycznie niezauważalny. a co za tym idzie. którego celem jest tworzenie alternatywnego oprogramowania dla routerów serii WRT.lpmagazine. Cechuje je (oprogramowanie) jednak fakt. co ciekawe – modemów 3G. nie uda nam się „z marszu” podmontować partycji NTFS. Istnieje jednak projekt o nazwie DD-WRT. obsługi wszystkich obecnie znanych standardów sieci WLAN. bowiem w Polsce przymuje się do serwisu routery nawet bez fabrycznego oprogramowania). Nic bardziej mylnego. obsługi IPv6. nie wygląda to tak źle. telnet. że zmiana oprogramowania wiąże się z utratą gwarancji wedle zastrzeżeń producenta (w praktyce jednak. powłokę SSH oraz obsługę urządzeń podpinanych przez port USB. które przeprowadzić możemy z poziomu powłoki SSH. które pozwolą na podpięcie większej ilości urządzeń oraz. bowiem wspomniane oprogramowanie zdecydowanie poszerza możliwości opisywanego routera. np. jak i przy użyciu kluczy. warto wspomnieć. huby usb. podobnie jak w przypadku routera. Wspiera on oczywiście szyfrowanie WEP. bądź też użycia windowsowego sterownika przy zastosowaniu aplikacji NDISwrapper. szyfrowany HTTPS. które niekoniecznie w jednej chwili znacząco obciążają router. Pamiętać jednak należy. Jak już wspomniano. Urządzenie ma stosunkowo silny sygnał. która pomoże nam w jego konfiguracji. że opisane tutaj produkty doskonale nadają się do domowych. O użytkownika Linuksa. w ekologicznym. jak a. Posiada zaimplementowaną technologię MIMO (Multiple In. Niestety. Warto włączyć tę opcję dla zwiększenia bezpieczeństwa przesyłanych danych konfiguracyjnych. router posiada implementację standardu 802. Również tam. także w wersji Enterprise. gdzie chcemy mieć serwer mediów – możemy przecież podpiąć do routera dyski twarde bądź drukarki przy użyciu wbudowanego weń portu USB. Jest to np. router można konfigurować z poziomu przeglądarki internetowej. podobnie. adapter WiFi Linksys WUSB600N. WPA2. czy za opłatą. zatem może być oddalone o kilka pomieszczeń od klienta – dwie antenki robią swoje. Starsze karty bezprzewodowe będą więc współpracowały z routerem w oparciu o starsze standardy. b lub g. który podłączamy do komputera poprzez port USB. Anteny zewnętrznej brak. ROGER ZACHARCZYK 54 7/2010 . Mamy bowiem możliwość tworzenia czterech ich rodzajów. Istnieje możliwość przejścia z domyślnie ustawionego protokołu HTTP na bezpieczniejszy. gdzie wykorzystać możemy np. Multiple Out). Podsumowując. należy zadbać odpowiednio o jego zabezpieczenie. czy to za darmo. Bardzo dobrze przedstawiane są również statystyki. a moc wbudowanej anteny to 2 dBi. Odświerzane na bieżąco wskaźniki informują nas o obciążeniu pamięci i procesora urządzenia. Warto więc wyposażyć się w nowsze urządzenie. WRT160NL wraz z oprogramowaniem DD-WRT tworzy doskonały duet do przygotowania hot spotów dostępnych w miejscach publicznych. jak i komercyjnych (hot spoty) zastosowań. tej przyjemności doświadczą jedynie użytkownicy systemu Windows oraz Mac OS. by wykorzystać pełne możliwości routera WRT160NL. Podobnie jak w przypadku routera. Adapter może pracować w trybie infrastruktury (najczęściej spotykany tryb pracy) oraz ad-hoc. kody jednorazowe do autoryzacji klientów. wraz z zakupem adaptera. można stwierdzić. Adapter ten osiąga maksymalną prędkość 300 Mb/ s. Jak już wspomniano wcześniej. Mimo że router pracuje pod kontrolą Linuksa. jak w przypadku routera. WPA.11n. by znaleźć trochę informacji na temat kompilacji sterownika. że nie zawsze dostarcza nam to pełnej funkcjonalności. ale wbudowana w zupełności wystarcza do zastosowań domowych. Wystarczy jednak chwilę popracować z wyszukiwarką.RECENZJA my możliwość zdefiniowania restrykcji odnośnie dostępu zdalnego. bowiem domyślna konfiguracja nie gwarantuje nam go – należy włączyć opcję szyfrowania i zmienić domyślne dane logowania. o liczbie podłączonych i aktywnych klientów itd. również w przypadku alternatywnego oprogramowania DDWRT. ale można z tym żyć. ale ładnym pudełku otrzymujemy płytę instalacyjną. zapomniano. z poza sieci lokalnej. gdzie mamy kilka komputerów.
Copyright © 2024 DOKUMEN.SITE Inc.