Numer 19 – 2008

Wywiad z Jono Baconem z Canonical Jono Bacon to brytyjski pisarz, dzien- nikarz, twórca oprogramowania, filan- trop i adwokat ruchu wolnego opro- gramowania. [. . . ] Człowiek o wielu pasjach, obecnie także specjalista do spraw społeczności w Canonical. Za- praszamy do lektury wywiadu, które- go udzielił nam dosłownie parę dni te- mu.

Całość na stronie 48

GIMP – retusz zdjęć Tekst ten rozpoczyna serię artyku- łów o tworzeniu grafiki w programie GIMP, która przede wszystkim będzie poświęcona obróbce zdjęć.

Całość na stronie 36

Poznajemy Dosbox Wielu sporo słyszało o emulatorze sys- temu MS DOS, jakim jest Dosbox. Wie- lu miało okazję z niego już korzystać, jednak bardzo wielu użytkowników odstrasza jego z pozoru trudna kon- figuracja. [. . . ]

Całość na stronie9 Wstępniak Spis treści

Drodzy Czytelnicy System Tegoroczna zima nie rozpieszcza amato- GNU/cośtam...... 3 rów białego szaleństwa. Mam nadzieję, że ERP5 zgodny z SUSE Linux...... 7 lektura bieżącego numeru uśmierzy żal za Mandriva Xtreme dla użytkowników Windows – Xtreme Studio dla początkujących...... 8 ośnieżonymi stokami, a jest co czytać! Poznajemy Dosbox – część pierwsza...... 9 Polecam artykuł GNU/cośtam, którego lek- Software tura pozwala na inne spojrzenie na systemy LATEX - piszemy pracę magisterską, ciąg dalszy...... 18 operacyjne. Można rzec, że kończy wojny po- Torrentflux...... 24 między dystrybucjami, ale kto wie, czy nie Baza pod kontrolą konsoli – część 6...... 28 będzie zarzewiem wojny o jedynie słuszne środowisko. . . Zaawansowana konfiguracja serwera WWW – część 5...... 31 Początkujący czytelnicy również znajdą LightZone – kombajn dla fotografa?...... 33 coś dla siebie, szczegóły w numerze. GIMP – retusz zdjęć – część 1...... 36 Gdy wrócicie z ferii i urlopów artykuły Programowanie o obróbce zdjęć będą jak znalazł. W bieżą- Bash – cześć 6...... 40 cym numerze mamy aż dwa. Jeden to po- Konsola – dlaczego warto ją poznać?...... 44 czątek serii o GIMPie, drugi . . . sami poczy- Wywiad tajcie. Wywiad z Jono Baconem z Canonical...... 48 Za oknem zaczął padać śnieg! Miłej lektu- ry, a ja lecę po sanki! Rozrywka Czy pingwin może być torbaczem?...... 50 Tomasz Łuczak – p. o. redaktora naczelnego Literatura Książki wydawnictwa Helion...... 53 Książki wydawnictwa PWN...... 54

Piotr Krakowiak – redaktor naczelny, założyciel, koordynacja, skład, www: http://www.dragonia.pl Tomasz Łuczak – p.o. redaktora naczelnego, skład, forum: http://forum.dragonia.pl Rafał Domeracki – sekretarz redakcji, opieka nad hostingiem, e-mail: [email protected] Paulina Budzoń – korekta, skład, Wszystkie publikowane materiały są objęte pra- Michał Rzepka – korekta, wem autorskim na zasadach licencji Creative Karol Kozioł – organizacja konkursów, opieka nad forum, Commons CC-BY. Nie ponosimy odpowiedzial- Katarzyna Myrek – opieka nad serwisem www, ności za treść ogłoszeń. Nazwy firm, nazwy han- Piotr Szewczuk – opieka nad hostingiem, dlowe i znaki towarowe, użyte w publikacji jedy- Krzysztof Biskup, Łukasz Ciesielski, Keyto, Rafał Topolnicki. nie w celach informacyjnych i są własnością po- Współpracujący: Aleksandra Brzezińska, Gabriela Grusza, A szczególnych podmiotów. Skład za pomocą systemu LTEX fontami LatinModern i TeXGyre Radek Krakowiak, Małgorzata Łuczak, Krzysztof Orłowski Pierwowzór layoutu Dragonia Magazine przygotował m4c

numer 19 – 2008 2 System GNU/cośtam Keyto

Niniejszy artykuł może wydać się nie- bilny oraz fakt, że ikonki trochę jednak się różnią którym niepoważny, obrazoburczy, a na- wyglądem, przeciętny zjadacz chleba posługujący wet heretycki. Trudno. Napiszę to, co uwa- się systemem GNU/Linux nie zauważy większej żam za stosowne napisać i to, co według różnicy pomiędzy świeżo zainstalowanym Ubun- mnie odpowiada prawdzie. Czy odpowia- tu a świeżo zainstalowanym systemem Nexenta da jej według Ciebie – Czytelniku – zo- GNU/OpenSolaris. baczymy. Na początku postawmy pytanie: Kernel OpenSolaris zawdzięczamy firmie Sun jakiego systemu używasz? Możliwe odpo- Microsystems. Od marca 1998 roku, kiedy to wiedzi? Oczywiście: Windows, Linux, So- otwarcie kodu źródłowego przez Netscape okazało laris, MacOS X. Zastanówmy się jednak, się trafionym pomysłem, firmy decydują się niekie- czy odpowiedź nie mogłaby brzmieć zu- dy na przekształcenie komercyjnych licencji swoich pełnie inaczej. Na przykład: KDE? produktów w licencje otwarte. W 2005 roku Sun Wprost i po imieniu – takie stawianie sprawy miał już za sobą przynajmniej jeden spektakularny na pierwszy rzut oka wydaje się po prostu niepo- sukces związany z otwarciem kodu źródłowego – ważne. Wiadomo, że KDE to środowisko graficzne, Ogólnie pomysł jest prosty. System komputerowy pakiet StarOffice, którego otwartej wersji – Ope- podobnie jak GNOME, Aqua czy Aero. Część sys- jest organizmem złożonym. Za poszczególne zada- nOffice.org – używam pisząc te słowa. W tymże temu. Tyle tylko, że na tej części zaczyna się i koń- nia odpowiadają poszczególne moduły. Moduły te 2005 roku, dokładnie 25 stycznia, Sun rozpoczął czy zainteresowanie 99,9 procenta użytkowników można wymieniać, o ile oczywiście zamienniki za- otwieranie kodów źródłowych swojego najważniej- komputerów. Być może większość z Was uzna tę pewniają odpowiednią funkcjonalność. Jeśli KDE szego dzieła, jakim jest system Solaris. 14 czerwca tezę za tanie szukanie dziury w całym, ale napi- nie spełnia wymagań użytkownika, może być za- kod systemu operacyjnego został ostatecznie opu- szę to i tak: dla przeciętnego użytkownika, system stąpione przez środowisko GNOME. Edytor vim blikowany, przy czym stworzono w tym celu spe- operacyjny nie ma znaczenia – liczy się środowisko – edytorem emacs. Interpreter bash interpreterem cjalną licencję: Common Development and Distri- pracy. Graficzne środowisko pracy. tcsh. Nigdzie nie jest napisane, że kernel nie może bution License (podobną w konstrukcji do licencji być zastąpiony innym kernelem (choć nikt również Mozilli). GNU/OpenSolaris nie twierdzi, że jest to proste). Nexenta to system Opis systemu Solaris to temat na wiele osob- Proszę popatrzyć na obrazek zamieszczony na bazujący na Ubuntu (dlatego też i wygląda tro- nych artykułów i sądzę, że system ten jest Czytel- tej stronie. Przedstawia on znany powszechnie pul- chę jak Ubuntu), w którym program Linux został nikowi znany, choćby ze słyszenia. Dla tych, którzy pit środowiska graficznego GNOME. Co więcej, zastąpiony programem OpenSolaris. I co? Patrząc sztandarowy produkt Suna znają jedynie z nazwy, dla obeznanego w temacie hobbysty system ten z perspektywy przeciętnego użytkownika: „I nic”. kilka słów wyjaśnienia. Solaris, podobnie jak Li- wyda się znajomy – wygląda jak Ubuntu. Cie- Przeglądarka Firefox nadal wyświetla strony inter- nux, należy do rodziny systemów Unix. Właściwie pło, ciepło, ale jest jeden szkopuł. System, które- netowe, edytor GIMP jest nadal starym, dobrym należałoby to ująć odwrotnie – Linux należy do ro- go pulpit uwieczniono na ilustracji, to nie Ubun- edytorem GIMP, a czarne okienko terminala na- dziny UNIX, podobnie jak Solaris. Solaris jest bo- tu GNU/Linux. Zwłaszcza nie Linux. To Nexenta dal reaguje na znane powszechnie polecenia inter- wiem systemem o wiele starszym. Należy do naj- GNU/OpenSolaris. pretera bash. Pomijając fakt, że Nexenta to system stabilniejszych i najsolidniejszych produktów my- znajdujący się w fazie rozwoju alfa, czyli niesta- śli informatycznej. Dość wspomnieć, że wykorzy-

numer 19 – 2008 3 System stywany jest przez NASA – jako system dla wa- kernel robi już wszystko sam zapisując plik. Dru- tymi o opublikowany kod systemu OpenSolaris. hadłowców i Międzynarodowej Stacji Kosmicznej gi przykład ilustruje właśnie kernel monolitycz- Do najważniejszych należą SchilliX i BeleniX. ISS. Jeśli chodzi o konstrukcję, to nie wdając się ny. Tak Linux, jak i SunOS, są takimi kernelami, SchilliX to najstarsza dystrybucja, oparta o ker- w szczegóły: kernele Linux i Solarisowy SunOS są stąd też zastąpienie Linuksa przez OpenSolaris by- nel pochodzący z firmy Sun Microsystems. Jest to nieco podobne. Przede wszystkim oba należą do ło wprawdzie trudne, ale nie karkołomne. Zwłasz- dystrybucja Live CD zawierająca wyłącznie wolne tak zwanych kerneli monolitycznych. Cóż to takie- cza, że SunOS jest w stanie uruchamiać natywne oprogramowanie. Ciekawostką jest, że jej pierw- go? aplikacje Linuksa. sze wydanie (oznaczone numerem 0.1) miało swoją Reasumując: autorzy Nexenty zastąpili jeden premierę zaledwie trzy dni po opublikowaniu ko- Kernel kernel systemu innym. Reszta systemu, jak już pi- du źródłowego przez Suna. Kernel, czyli z technicznego punktu widzenia sałem, bazuje na systemie GNU/Linux (konkretnie Pochodzący z indyjskiego oddziału Suna – Be- system operacyjny we własnej osobie, to program Debian/Ubuntu), więc jest szansa, że użytkownik leniX – również jest dystrybucją typu Live, cho- działający nieustannie podczas pracy komputera. pracujący przy komputerze z zainstalowanym sys- ciaż ma też zaimplementowaną możliwość instala- Tworzy środowisko, w którym funkcjonują inne temem Nexenta odniesie wrażenie, że w rzeczywi- cji. O ile jednak główny produkt projektu OpenSo- programy. Zarządza zasobami umożliwiając pracę stości ma do czynienia z Ubuntu. O ile oczywiście laris – Indiana oparty jest o środowisko GNOME, innych aplikacji. Abraham Silberschatz ujął to dość nie przyjdzie mu ochota na zainstalowanie nowej o tyle BeleniX zawiera środowiska KDE i XFCE. ciekawie, pisząc: System operacyjny jest podobny do aplikacji. Ale o tym nieco dalej. Tak na marginesie: nazwa BeleniX pochodzi od na- rządu. Dostarcza środków do właściwego użycia zaso- zwy celtyckiego boga Belenosa – boga słońca, a Sol bów komputera. I podobnie jak rząd, nie wykonuje sam Indiana OpenSolaris i nie tylko. . . to oczywiście – Słońce. Chwilowo jednak zostaw- żadnej użytecznej funkcji. Po prostu tworzy środowisko, No dobrze, ale czy Nexenta jest jedynym te- my Solaris w spokoju. . . w którym inne programy mogą wykonywać użyteczne go typu przedsięwzięciem? Oczywiście – nie, choć funkcje . Problem w tym, że dokładnie nie wiado- w tej chwili wydaje się być tym najbardziej za- mo na czym tak konkretnie to polega. W dowol- awansowanym. Przede wszystkim jednak istnieje nie wybranej literaturze można wyczytać, że sys- rodzime rozwiązanie projektu OpenSolaris. Prace tem operacyjny jest położony pomiędzy sprzętem trwają i w chwili obecnej ich efekt obejrzeć można a aplikacjami, zarządzając tak jednymi, jak i dru- pobierając z sieci obraz iso systemu, o nazwie ko- gimi. Tylko co to właściwie znaczy? Czy ma on dowej Indiana. Pobieramy, uruchamiamy. . . i znów działać na zasadzie semafora – po prostu włącza- widzimy znajome środowisko GNOME. No dobrze jąc i wyłączając dostęp do konkretnych zasobów – to, co teraz napiszę, to może duże uproszczenie, dla aplikacji, czy też może ma zawierać programy ale: gdyby tak zmienić tapety, ikonki i inne kom- obsługi tych zasobów. Problem zilustrować można ponenty „wizualne”, użytkownik dalej nie zobaczy następującym, nieco spersonifikowanym przykła- większej różnicy między opisywaną przed chwilą dem. Program GIMP chce zapisać grafikę na dys- Nexentą, dystrybucją Indiana i systemem Ubun- ku twardym komputera. Mamy dwie możliwości. tu. Dlaczego? W każdym przypadku używane jest Pierwszą z nich jest sytuacja, w której GIMP zgłosił środowisko graficzne GNOME, w każdym – narzę- zapotrzebowanie na zasoby dysku do kernela, ker- dzia coreutils produkcji Free Software Foundation, GNU/po prostu GNU nel zaś po udzieleniu tej zgody, nakazał dokonanie w przypadku Indiany i Nexenty mamy nawet ten System GNU od początku swojego istnienia zapisu jakiemuś hipotetycznemu programowi ob- sam kernel. sługi dysku. W drugim przypadku sam kernel za- miał być tworem autonomicznym. Oprogramowa- Warto wspomnieć, że już od jakiegoś czasu wiera program obsługi dysku i wtedy GIMP zwra- nie użytkowe, które wszyscy znamy i które jest trwają pracę nad kilkoma innymi projektami opar- ca się do kernela z prośba o zapis pliku, a dalej używane tak we wspominanych dystrybucjach sys-

numer 19 – 2008 4 System temu OpenSolaris, jak i dystrybucjach rodziny Li- nym z czterech testowych komputerów, jednak nie nux, miało w pierwotnym zamierzeniu działać działała na nim ani karta sieciowa, ani modem. Do dzięki kernelowi Hurd. Do dziś dnia jednak nie tej pory nie mam też pojęcia, jak zmusić do współ- działa, chociaż. . . Projekt Debian zawiera port te- pracy pamięć USB, a stacji dyskietek w owym kom- go systemu z implementacją owego kernela. I o ile puterze nie ma. Stąd też, mimo że udało mi się zro- różnice pomiędzy dzieckiem Suna a systemem bić zrzut ekranu – nie mogłem umieścić go w arty- herbu pingwina nie są aż takie ogromne, o tyle kule. Zginął bezpowrotnie w momencie wyłącze- w przypadku Hurda różnica jest naprawdę wielka. nia zasilania. Indiana też jest dość kapryśną dystry- Przede wszystkim zaznaczyć należy, że o ile bucją. Może nie tak, jak BeleniX, ale sieci nie uda- OpenSolaris i Linux należą do rodziny kerneli mo- ło mi się uruchomić na żadnej z używanych ma- nolitycznych, Hurd jest to z technicznego punktu szyn. Z kolei ShilliX uruchamiał się wprawdzie bez widzenia tak zwany mikrokernel. Mikrokernel, jak problemów, ale po kilku chwilach komputery od- należy się spodziewać, to rozwiązanie minimali- mawiały współpracy. Chcę tu podkreślić: zapewne styczne. Zaimplementowane są w nim naprawdę każdy z tych systemów da się obłaskawić, ale z ca- niezbędne funkcje. Zazwyczaj jest to zarządzanie łą pewnością trzeba być informatykiem i to uści- procesami i wątkami, komunikacja międzyproce- Gdzie jest haczyk? ślijmy: informatykiem specjalizującym się w sys- sowa i obsługa przerwań. Posługując się poprzed- temach operacyjnych. Aby mógł z nich korzystać nim przykładem, działanie kernela Hurd sprowa- Jak widać, systemów z kernelem innym niż Li- przeciętny użytkownik, musi jeszcze wiele czasu dza się zazwyczaj do wydania zgody lub odmo- nux nie brakuje. I niby są takie podobne, że teore- upłynąć. wy dostępu do określonego zasobu. Resztę funk- tycznie można by – w razie czego – niezauważalnie O ile jednak systemy parte o OpenSolaris ro- cji zapewniają odpowiednie serwery. Przypomi- wymienić sobie używanego w tej chwili „Linuksa” bią – nazwijmy to – trudności we współpracy, nam tutaj, że dla programisty serwer to nie „ta- na Nexentę czy Indianę. Pytanie więc: gdzie jest o tyle instalacja dystrybucji Debian GNU/Hurd ki duży komputer z wieloma procesorami i dys- haczyk? A jakże – haczyk jest i to całkiem spory. to już prawdziwa informatyczna przygoda. Namę- kami”, a program umożliwiający dzielenie zaso- Nie ma się co rozpisywać, wystarczy jedno je- czyłem się z nim co niemiara i tak na margine- bów. Mamy więc serwer grafiki, serwer procesów, dyne słowo: sterowniki. Użytkownicy Linuksa zna- sie: Drogi Czytelniku, jeśli masz ochotę na zmie- serwer obsługi sieci, serwer obsługi urządzeń ma- ją ten problem dość dobrze. Jest to, jak by nie pa- rzenie się z tym systemem – nie powielaj mojego sowych, serwer uwierzytelniania i tak dalej. Dość trzyć, główna bolączka systemu spod znaku pin- błędu i przed instalacją dokładnie przeczytaj całą dobrze oddaje to logo kernela Hurd. Zespół blocz- gwina. Brak sterowników do nietypowych druka- dokumentację. Mnie się nie chciało, co przyznaję ków połączonych wzajemnie i świadczących kon- rek i skanerów. Brak sterowników do kart graficz- ze wstydem i już po kilku nieudanych próbach zo- kretne usługi. Hurd bywa zresztą nazywany „ze- nych, telewizyjnych, sieciowych i tak dalej. O ile ze stałem zmuszony do jej przestudiowania, aby prze- społem serwerów”. Ciekawą cechą Hurda jest to, sterownikami do Linuksa bywają, mówiąc eufemi- konać się, że już pewne czynności instalacyjne wy- że użytkownik może dodawać własne, pełnopraw- stycznie – problemy, o tyle ze sterownikami współ- konuje się „trochę inaczej niż zwykle”. Trywialny ne serwery, wpływając na funkcjonalność systemu pracującymi z kernelem OpenSolaris jest znacznie przykład: na samym początku dałem się „złapać” operacyjnego. gorzej. Każdy z opisywanych w artykule systemów na to, że instalator Debiana GNU/Hurd nie zawie- Jeśli już jesteśmy przy Debianie. Oprócz wspo- udało mi się uruchomić. Jednak o ile z Nexentą był ra domyślnego boot-managera i pomimo prawidło- mnianego projektu GNU/Hurd istnieją jeszcze De- stosunkowo najmniejszy problem – na kilku kom- wej instalacji system się nie uruchomił. W dodatku bian GNU/FreeBSD i Debian GNU/NetBSD. Tak, puterach zainstalowała się bez większych proble- na moim sprzęcie działa on wybitnie niestabilnie, tak – system GNU i kernele z rodziny BSD. mów i co więcej nie odmawiała dalszej współpracy a w poprawienie tego stanu rzeczy, trzeba włożyć po instalacji, o tyle z innymi dystrybucjami było naprawdę wiele pracy. o wiele gorzej. BeleniX uruchomiłem tylko na jed-

numer 19 – 2008 5 System

Tak. Sterowniki to największy problem. Drugim postępujący i nieodwracalny. Według mnie, trzeba pomocy peceta. Oczywiście, pomiędzy kernelami – nie mniejszym z punktu widzenia statystyczne- jednak mówić, pisać i podkreślać znaczenie owego Linux, FreeBSD czy SunOS są różnice. Ba! Duże. go Kowalskiego – jest dostępność oprogramowa- GNU. Chcesz skracać nazwę swojego systemu do Tyle tylko, że – Drogi Czytelniku – tak „z ręką na nia. Wprawdzie teoretycznie OpenSolaris obsługu- „Linux”? W porządku, miej jednak świadomość, sercu”: czy zdajesz sobie sprawę na czym polega je aplikacje dla Linuksa, ale. . . że to błąd. różnica w na przykład. . . obsłudze wątków w tych Po pierwsze zdarza się, że teoria nie do końca poszczególnych projektach. Jeżeli w ogóle wiesz, znajduje potwierdzenie w praktyce (biblioteki, za- co to jest wątek (tak bez zaglądania do Wikipedii) leżności, konfiguracja, różne licencje i tak dalej), – gratuluję. Jeśli nie wiesz – czy jest Ci to właści- a po wtóre programy powinny być kompilowa- wie do czegoś potrzebne? Zakładam, że w swojej ne dla tego środowiska, w którym pracują. Choć- dziedzinie możesz być wielkim, naprawdę wielkim by ze względu na wydajność. Podkreślam, gdyż fachowcem i nie sądzę, aby brak wiedzy na temat ciągle bronię tezy postawionej na początku – jest obsługi wątków przez kernel umniejszał Twoją fa- to problem twórców, nie użytkownika. Jeśli Ne- chowość. I generalnie nie sprawia, że GNOME pra- xenta będzie miała repozytorium pakietów wiel- cuje jakoś szczególnie inaczej. kością choćby zbliżone do repozytorium Ubuntu (co podobno ma nastąpić w wersji stabilnej), dla „zwykłego użytkownika” nie ma różnicy w obsłu- dze tych systemów. W końcu to ciągle stare, dobre Odnośniki GNOME. [1] A. Silberschatz, P. Galvin Podstawy Systemów Opera- cyjnych, WNT Konkluzja [2] OpenSolaris – http://www.opensolaris.org/ Pisząc ten tekst, chciałem upiec dwie piecze- os/ nie na jednym ogniu. Przede wszystkim – spra- [3] Indiana – http://www.opensolaris.org/os/ wa czysto semantyczna. System GNU/Linux po- project/indiana/resources/getit/ [4] Nexenta – http://www.nexenta.org/ wszechnie nazywany bywa po prostu Linux. Ogól- Po drugie, powtórzę raz jeszcze to, co napisa- nie większość Czytelników zdaje sobie chyba spra- [5] BeleniX – http://www.genunix.org/ łem na wstępie. Przeciętny użytkownik komputera distributions/belenix_site/belenix_ wę, że jest to błąd. Linux to jedynie (a może aż) nie potrzebuje ani grama wiedzy z zakresu „syste- home.html kernel. Ja stoję na stanowisku, że nie jest to błąd. mu Linux”. Przeciętny użytkownik komputera po- [6] ShilliX – http://schillix.berlios.de/ Jest to duży błąd. System GNU/Linux to przede trzebuje wiedzy z zakresu środowiska graficzne- [7] GNU – http://www.gnu.org/home.pl.html wszystkim GNU, a dopiero potem Linux. Jak wi- go GNOME czy KDE. Mało tego; po opanowaniu [8] Hurd – http://www.gnu.org/software/ dać, Linux nie jest niezastąpiony i ludzie z Free owego środowiska pracy staje przed nim otworem hurd/ Software Foundation mają słuszne pretensje, kiedy cała gama systemów. Bo czyż wielką „filozofią” jest [9] Debian GNU/Hurd – http://www.debian. mówią o umniejszaniu znaczenia ich pracy pod- przesiadka z Ubuntu LTS na Solaris 10? Środowi- org/ports/hurd/ http://www.debian. czas skracania nazw dystrybucji opartych o dany sko Sun Java Desktop oparte jest przecież o GNO- [10] Debian GNU/kFreeBSD – org/ports/kfreebsd-gnu/ kernel jedynie do nazwy samego kernela. Żeby by- ME i bliźniaczo do niego podobne. Albo przesiad- [11] Debian GNU/NetBSD – http://www.debian. ło jasne, nie chodzi mi w tym miejscu o nawo- ka z analogicznej wersji Kubuntu na PC-BSD? Je- ływanie do takiej zmiany postawy użytkowników org/ports/netbsd/ śli nie administrujemy serwerem, działającym pod http://www.fsf. systemów z rodziny Linux, aby zawsze dodawali [12] Free Software Foundation – dowództwem tych systemów, raczej nie. Piszę tutaj org/ w nazwie owo GNU. Wszyscy znają GNU/Linux o normalnej, przeciętnej pracy, wykonywanej przy jako Linux i koniec. „Skracanie nazwy” to proces

numer 19 – 2008 6 System ERP5 zgodny z SUSE Linux Novell ERP5 – polskojęzyczny system klasy ERP o wolnym kodzie źró- dłowym – uzyskał prawo do używania znaku Novell Ready Warszawa, 4 stycznia 2008 r. Firmy ERP5 Polska i Novell Polska wspólnie informują, że ERP5 – pierwsza polskojęzyczna aplikacja klasy ERP o otwar- tym kodzie źródłowym – jest zgodna ze środowiskiem operacyjnym SUSE Linux. W wyniku pomyślnego wyniku testów kontrolnych, ERP5 uzyska- ła prawo do używania ogólnoświatowego znaku Novell Ready (zobacz: www. novell.com/partners/ready), a jej aplikacje zostały umieszczone w cen- tralnym katalogu oprogramowania i sprzętu zgodnego z systemami firmy No- vell (zobacz: www.novell.com/partnerguide/product/206738.html). Testy wykazały bardzo wysoką stabilność i wydajność działania tych aplikacji w środowisku systemów operacyjnych SUSE Linux Enterprise Desktop 10 oraz SUSE Linux Enterprise Server 10. Open Source ERP5 to system wspomagający zarządzanie przedsiębior- stwem – od zaopatrzenia, sprzedaży i obsługi klienta, po obsługę wewnętrz- nych procesów organizacyjnych, takich jak zarządzanie dokumentacją, czy poli- tyka kadrowa. Kod źródłowy programu ERP5 jest dostępny na zasadach licencji GPL, można go pobrać ze strony internetowej firmy Nexedi. Jedną z unikato- wych zalet ERP5 jest fakt, że może on w ramach jednej instalacji obsługiwać wiele przedsiębiorstw lub jednostek organizacyjnych jednocześnie, zapewniając im wysoki poziom integracji procesów biznesowych. Jądro ERP5 stanowi tzw. „uogólniony model biznesowy” (ang. Unified Busi- Rysunek 1. ERP5 – w akcji ness Model), umożliwiający modelowanie działalności organizacji i stosowanych w nim procedur (ang. workflows). Inaczej, niż w przypadku wielu innych pro- duktów, w których wdrożenie polega głównie na odcięciu zbędnych funkcji spośród olbrzymiego zbioru gotowych funkcjonalności, wdrożenie ERP5 pole- ga na dokładnym odwzorowaniu działalności firmy w ramach modelu UBM. Z tego powodu ERP5 zapewnia łatwą obsługę sytuacji niestandardowych. Do- datkowym ułatwieniem jest fakt, że użytkownik korzysta wyłącznie z przeglą- darki internetowej, będąc dzięki temu uniezależnionym od systemu operacyj- nego. ERP5 obsługuje rachunkowość, CRM, sprzedaż, gospodarkę magazynową, spedycję, fakturowanie, HR, Product Data Management i zarządzanie produk- cją. W połączeniu z systemem portalowym służyć też może za narzędzie do zarządzania treścią intranetu lub strony internetowej i zarządzania wiedzą.

numer 19 – 2008 7 System Mandriva Xtreme dla użytkowników Windows – Xtreme Studio dla początkujących Amazis.net Jak sprawić, aby pierwsze kroki użytkowników Linuksa były łatwiejsze i bardziej przyjemne? Jak sprawić, aby szybko poczuł się jak w domu i bez problemu zaczął użytkowanie nowego sys- temu? Możemy to zrobić zmniejszając liczbę nieznanych lub niezrozumiałych rze- czy, które użytkownik może napotkać w nowym systemie. Siła przyzwyczajeń jest bardzo duża i dlatego warto pomóc użytkownikom wskazując ścieżkę, którą można bezpiecznie podążać poznając nowy system. Z taką myślą przygotowaliśmy dla użytkowników systemu Mandriva Xtre- me specjalny program Xtreme Studio. Dzięki Xtreme Studio użytkownik jed- nym rzutem oka zorientuje się w możliwościach jakie daje mu nowy system i bez trudu zacznie korzystanie z komputera. Nie ważne czy chce pograć, na- pisać email, wczytać zdjęcia z aparatu czy pooglądać filmy – wystarczą dwa kliknięcia, aby dotrzeć do właściwego rozwiązania. Xtreme Studio to następca Centrum Rozrywki, które pojawiło się w Man- driva Xtreme 2. Ponieważ Centrum Rozrywki spotkało się z dużą sympatią użytkowników poszliśmy o krok dalej i przygotowaliśmy rozwiązanie bardziej wygodne i przejrzyste. Dlatego teraz poznanie systemu będzie jeszcze łatwiej- Rysunek 1. Xtreme Studio sze. Oficjalna premiera Xtreme Studio odbędzie się wraz z publikacją nowej edycji systemu Mandriva Xtreme. Ostatnie miesiące spędziliśmy na rozmowach z użytkownikami, dopracowywaniu jakości systemu, przygotowaniu repozyto- rium pakietów z oprogramowaniem w Klubie Mandrivy. Będzie to najszybsza i najbardziej stabilna z dotychczasowych wersji Xtreme.

numer 19 – 2008 8 System Poznajemy Dosbox – część pierwsza Radek Krakowiak – Raptou

Wielu sporo słyszało o emulatorze systemu MS DOS, jakim jest ider i Sinclair dość „opornie” stosowali ów procesor w swoich produktach Dosbox. Wielu miało okazję z niego już korzystać, jednak bardzo i nie bardzo chcieli rezygnować z własnych, ciągle bardzo popularnych stan- wielu użytkowników odstrasza jego z pozoru trudna konfigura- dardów. W niektórych komputerach wymagało to wbudowania drugiego pro- cja. Pokolenie lat osiemdziesiątych ubiegłego wieku wychowało cesora „obok” już istniejącego, jak to miało np. miejsce w komputerze Com- się już na „okienkach” bądź co raz popularniejszym systemie Li- modore 128. Podnosiło to znacznie koszty komputera. Nie bez znaczenia jest nux. Pokolenie autora niniejszego artykułu z nostalgią wspomina fakt, że system ten wymagał już stacji dysków, ponieważ na ten nośnik został czasy Dooma, Duke Nukem 3D czy też Wolfenstein 3d, uważane- przeznaczony. W najlepszej sytuacji była firma Amstrad, która w swoje kompu- go dziś za klasyk i pierwowzór wszystkich „gier-strzelanek” FPP. tery od dawna wyposażała w procesor Z80. Także dla komputera Timex (klon System. Postaram się przybliżyć nieco zawiłości konfiguracji tego ZX Spectrum) powstała stacja dyskietek FDD 3000, będąca de facto odrębnym najlepszego emulatora systemu DOS. Ale najpierw. . . komputerem z własnym procesorem i pamięcią RAM. Warto nadmienić, że Commodore 128 znacznie wyprzedzał swoją epokę, Trochę (wcale nie nudnej) historii ponieważ były to tak na prawdę trzy komputery w jednej obudowie z możli- Gdy w latach osiemdziesiątych ub. wieku nastąpił – także w Polsce „boom” wością pracy aż w czterech trybach: na komputery domowe zwane osobistymi, jak „grzyby po deszczu” pojawiały Tryb C64 – klasyczny w Basicu lub pod już „okienkowym” się co raz to nowe komputery 8-bitowe. Pojawiły się marki znane w Polsce, jak systemem operacyjnym GEOS 2.0. System ten był wzorowany na Mac OS Sinclair, Atari, Commodore, Timex, jak i te mniej popularne. Co raz większa i wiele z tych rozwiązań zostało potem „przejęte” przez Microsoft. W Mac liczba producentów sprzętu i lawinowo wzrastająca komputeryzacja społeczeń- OS i GEOS właśnie po raz pierwszy „na masową skalę” pojawiły się okien- stwa powodowała niemałe problemy wśród firm zajmujących się produkcją gier ka i znany dziś układ menu i tzw. górnej belki. Istniał już wówczas pakiet i oprogramowania. Wadą ówczesnych komputerów był fakt, iż sprzęt różnych biurowy, tylko tak się wtedy nie nazywał. Na pakiet ten składał się Edytor marek nie był ze sobą zgodny zarówno od strony sprzętowej, jak i progra- tekstu GeoWrite, arkusz kalkulacyjny GeoCalc, program graficzny GeoPaint mowej. Producenci prześcigali się w wymyślaniu i lansowaniu własnych roz- oraz program do składu tekstu Desktop Publishing GeoPublish. Sam system 1 wiązań z różnym skutkiem. Czasem przyczyniało się to do sukcesu produktu mieścił się na jednej stronie dyskietki 5 4 ” o pojemności 170 kB i działało na (ZX Spectrum, Commodore 64, Atari), a czasem do spektakularnej jego porażki 8-bitowym komputerze z zaledwie 64 kB pamięci RAM! (Commodore +4, Commodore 16/116). Coraz bardziej odczuwalna była potrze- Tryb C128 – zupełnie nowy komputer następnej generacji, pracujący w no- ba standaryzacji platform. Tu także odbywała się rywalizacja. Pierwszą próbą wym, rewolucyjnym Basicu lub GEOS 128 stworzenia wspólnego standardu był standard MSX, powstały w 1983 roku. To CP/M – wyłączał się wówczas procesor 6502, a włączał Z80/A. W tym trybie wówczas Microsoft nieśmiało próbował sił w stworzeniu systemu operacyjnego można już było pracować w rozdzielczości 80x25 znaków! MSX DOS. Standard ten nie przyjął się jednak na świecie. Odniósł częściowy Komputer ten był sprzedawany w obudowie przypominającej Commodore sukces w Azji i Ameryce południowej. O jego następcach MSX2/MSX2+ prak- Amiga 500 oraz obudowie wzorowanej na komputerach klasy PC XT, z oddziel- tycznie nie wiele wiadomo poza tym, że istniały. ną klawiaturą i jednostką centralną (dziś powiedzielibyśmy typu „Desktop”). Prawdziwym przełomem okazał się system CP/M, będący poprzednikiem Niestety komputer ten, podobnie jak następca ZX Spectrum – Sam Coupe nie DOS. Powstał on już w roku 1974 dla procesora Intel 4004, lecz popularność cieszyły się popularnością, a debiutujące 16-bitowe komputery ostatecznie po- zaczął zdobywać dopiero w latach osiemdziesiątych ubiegłego wieku. W Pol- grążyły platformę 8-bitową, choć jeszcze nie osiągnęła one wtedy kresu swoich sce zdobył popularność dzięki komputerom domowym, w których stosowano możliwości. Jeszcze wtedy nikt nie przypuszczał, że podobnie stanie się z syste- procesor firmy Zilog Z80. Na początku producenci – poza Amstrad, Shna- mem DOS dekadę później oraz jak zgubne w przyszłości okaże się lansowanie

numer 19 – 2008 9 System

„jednofirmowego”, niezgodnego z innymi systemu operacyjnego (AmigaDOS, GEOS (Breadbox Ensemble) – całkiem udana próba przeniesienia legendy Atari DOS), co pogrąży ostatecznie komputery-legendy Atari ST oraz Commo- C64 i systemu GEOS na platformę PC. Współczesny GEOS wygląda już dore Amiga. . . jak Windows 98, obsługuje też skróty oraz długie nazwy plików. Niestety Pierwszy MS DOS pojawił się pod koniec 1980 roku i został stworzony dla za późno. nowego wówczas projektu IBM/PC zawierał on część kodu CP/M. Jeszcze WinDOS – mało popularna nakładka graficzna. wtedy nazywał się PC DOS, a dopiero od wersji piątej już pod znaną dziś MS DosShell – nakładka firmy Microsoft dołączana w standardzie do systemu nazwą MS DOS. W Polsce komputery PC zaczęły zdobywać popularność na 6.2x obok MS Antywirus i innych narzędzi. początku lat dziewięćdziesiątych ubiegłego wieku. Oczywiście, istniał wów- Xtree – nakładka przeniesiona z systemu Unix. Nadal rozwijana. Obecnie znaj- czas nie tylko MS DOS, ale także bliźniaczy PC–DOS firmy IBM, Novell, DR duje się w wielu repozytoriach Linuksa oraz dla Mac OS – np. pod nazwą DOS. System – choć z dzisiejszego punktu widzenia bardzo prosty – wymagał Ytree jednak sporej wiedzy od użytkownika. Trzeba było znać tzw. polecenia we- Po premierze systemu MS Windows, już widać było na horyzoncie pierwsze wnętrzne i zewnętrzne interpretera. Nic więc dziwnego, że powstawały mniej oznaki starzenia systemu MS DOS. Co raz częściej programistom zaczynała do- lub bardziej udane, graficzne i tekstowe nakładki na system DOS ułatwiające skwierać tzw. „wsteczna kompatybilność z komputerem XT. Mało kto wie, że użytkownikom pracę na tym systemie. Pojawił się legendarny Norton Com- aż do końca lat 90 ub. wieku w oryginalnych komputerach IBM po odłączeniu mander (twórcą jest człowiek o swojsko brzmiącym nazwisku John Socha), wszystkich napędów masowych i włączeniu komputera pokazywał się. . . ROM który wbrew swojej popularności nie był najlepszy, ale miał te zaletę, że mógł Basic i „prosił” o podłączenie magnetofonu do portu RS–232! Wielu znających się zmieścić po nieznacznym okrojeniu na jednej dyskietce. system MS DOS nie wie, że tzw. sterowniki pamięci XMS (himem.sys) oraz EMS Warto wspomnieć, że na początku lat dziewięćdziesiątych ub. wieku niewie- (EMM386.exe) to nic innego jak. . . emulatory dawnych i już zapomnianych kart le osób w Polsce stać było na zakup twardego dysku, nazywanego wtedy „Win- rozszerzających pamięć fizyczną. W komputerach XT (16 bitów) procesor był chester” z racji jego masywności, wagi oraz odgłosów jakie wydawały jego dwa w stanie zaadresować maksymalnie 640kb pamięci. Powyżej 384 kB do 1 MB silniki, a szczególnie krokowy do przesuwania głowicy. Wtedy pracowało się nazywało się pamięcią UMB (Upper Memory Block) i służyło jako swego ro- 1 na stacjach dysków 5 4 cala, tzw. miękkich. Komputery XT z procesorami Intel: dzaju RAM dysk dla programów rezydentnych. Dodatkowy RAM wkładało się i8080 (16bit/8bit szyna danych), i8086 (16bit/16bit szyna danych) oraz Nec 20 w gniazda 8-bitowe standardu ISA. Podział na XMS oraz EMS wynikał znów (nieco szybszy odpowiednik i8086) oferowały „zawrotną” pojemność 360 kb na z walki firm o standard. Za te „grzechy młodości” przyszło nam, użytkowni- dwóch stronach dyskietki (tzw. dyskietki DD), a później, wraz z nową generacją kom pokutować aż do rewolucji w postaci Windows XP. Brak kompatybilności komputerów tzw. AT (od i80286 wzwyż) 1,2 MB i na stacjach dyskietek tzw. Windows 2000 oraz XP z programami dla DOS wynika właśnie z powodu twardych, znanych współcześnie 3,5 cala 1,44 MB. Zresztą dyski twarde nie im- „zerwania z tradycją” ograniczeń kompatybilności wstecznej. ponowały wówczas pojemnością. Najtańsze mieściły 10 MB (tak! Megabajtów) Celowo pomijam tu systemy z rodziny Windows 95, 98, ME, ponieważ de danych, a te lepsze i zarazem najpopularniejsze „aż” 20 MB. Zresztą trzeba je facto były one nadal jedynie nakładkami graficznymi na system operacyjny było raz do roku formatować. Stosowanie silników krokowych do przesuwania DOS i tylko częściowo zrywały z dawnymi zasadami podziału pamięci. Raczej głowicy powodowało, że z czasem z powodu rozszerzalności temperaturowej go „omijały”. System MS DOS nadal jednak cieszył się ogromną popularnością. talerzy dysków, głowica co raz rzadziej „spotykała” się ze ścieżką. Mogły też Nie pomogło nawet celowe zablokowanie trybu MS DOS w Windows ME, który pracować tylko w jednej z dwóch pozycji. Albo w pionie, albo w poziomie, nadal w nim się znajduje. ale nigdy dysku sformatowanego np. w pozycji pionowej nie można było uży- Przyzwyczajenie do MS DOS jest tak silne, że wiele osób wyłącznie z powo- wać w poziomej i na odwrót. Dziś tego problemu nie ma. Głowice „śledzą” du zgodności z MS DOS używa nadal systemu Windows 98! Niestety wraz z za- ścieżki, więc w przypadku rozszerzenia talerza pod wpływem ciepła głowica przestaniem wsparcia systemów z rodziny MS Windows 9x oraz zaprzestaniem także „koryguje” swoje położenie. Z innych nakładek, które jednak nie zdobyły prac nad MS DOS przyszła konieczność zastąpienia tego wciąż atrakcyjnego, popularności „legendy”, czyli „Nortona” były: prostego i niesamowicie szybkiego systemu, który „odszedł przedwcześnie” GEM – do dziś rozwijany przez społeczność Open Source. z przyczyn czysto finansowych czymś nowym. Bardzo wielu użytkowników

numer 19 – 2008 10 System z oburzeniem przyjęło komunikat giganta z Redmond, o zaprzestaniu wsparcia — General Midi, i rozwoju MS DOS. Prace rodzącej się dopiero wtedy społeczności nazywanej — , dziś Open Source poszły w dwóch głównych kierunkach: FreeDOS – otwarty — Creative 1, 2, Pro, Pro 2, 16, DOS, będący następcą legendarnego MS DOS, w założeniu z nim w 100% — Adlib, kompatybilnym (z tym jest niestety „różnie”), zarazem pozbawionym wad po- — PC Speaker, przednika, obsługującym już sieć, Fat32, długie nazwy plików i zapewniający — MIDI MPU 401. w pełni 32-bitowy dostęp do urządzeń oraz w stronę emulacji. Emulowane karty graficzne (zamiennie): Po więcej informacji z ciekawej historii systemów operacyjnych zapraszam do — CGA (Colour Graphic Adapter ) – 4 kolory, źródeł. — Hercules MDA (Mono Display Adapter) – 2 kolory, lecz w wysokiej roz- Tak powstał emulator DosBox, który w założeniu miał służyć do uruchamia- dzielczości 762x348, nia klasycznych gier, do których wielu współczesnym jest nadal daleko, jeżeli — EGA (Enhanced Graphics Adapter) – 16 kolorów, brać pod uwagę tzw. Parametr „grywalności”. Są to gry, do których wraca się — VGA, po latach i „przechodzi” n-ty raz. Nie grzeszą jakością grafiki, choć muzyka — SVGA (zgodność ze standardem VESA 2.0) – 64 tysiące kolorów w rozdz. często jest na wysokim poziomie, dzięki takim produktom ówczesnej myśli 1024x768. Wymaga dodatkowych sterowników VESA Univbe. technicznej jak Roland, Sound Blaster AVE32 czy też równie legendarny Gravis Oprócz tego, Dosbox emuluje też sterownik rezydentny myszy, obsługuje in- Ultrasound. Dziś współczesne gry zachwycają efektami graficznymi, dźwię- tranet w standardzie IPX/SPX, co umożliwia uruchamianie niektórych gier kiem ale. . . Gra się w nie zwykle jeden raz! Szybko się o nich zapomina, a do w trybie Multiplayer poprzez sieć LAN, a także częściowo przez internet. gier dla DOS wraca się zawsze i przez całe życie, bo mają – jak mawiają mi- Twórcy wciąż rozwijanego, otwartego systemu DOS o nazwie FreeDos do- łośnicy starych gier – klimat oraz to „coś”, czego brakuje wielu współczesnym stosowali część poleceń zewnętrznych swojego systemu tak, aby można je było produkcjom! używać w emulatorze Dosbox. O ile nie odwołują się bezpośrednio do BIOS Dosbox potrafi uruchamiać nie tylko gry. Można na nim używać wielu pro- i sprzętu, większość poleceń zewnętrznych (plików) FreeDos powinna działać gramów użytkowych dla DOS, które postaram się opisywać w kolejnych nu- bez problemów. merach, załączając ich „uwspółcześnione” wersje, działające na współczesnych systemach operacyjnych. Dzięki uwalnianiu kodów wielu gier i programów Instalacja Dosbox można znów przeżywać przygody w Hokus Pokus, ścigać się Lotusem czy też Opis instalacji i konfiguracji. zagrać w legendarny Illusion Pinball – wzór fliperów. Do dziś uważam go za jeden z najlepszych! Gry te są najczęściej zupełnie bezpłatne, zwykle o statu- Dla Mac OS X sie Abandonware (porzucone). W Dosboksie można zainstalować i uruchomić 1. Ściągamy Dosboksa i kopiujemy do Aplications (Programy). nawet system Windows 3.11! 2. Na dysku tworzymy teczkę, która potem będzie naszą partycją C. Dla przykładu: /Users/bronek/dos zakładamy teczkę DOS. Ale najpierw. . . 3. Dla późniejszej wygody wgrywamy tam Norton Commandera, Xtree lub Dosbox jest emulatorem wyposażonym we własny interpreter poleceń sys- Dos Navigatora. temu DOS, w którym jest już zawarta część poleceń wewnętrznych pierwo- 4. Do teczki Aplications (Programy) kopiujemy utworzony już plik do- wzoru, DOSa 6.22 Microsoftu dla maksymalnej z nim zgodności. Oprócz tego, xbox.conf. program ten emuluje komputer wyposażony w kilka kart muzycznych, które także emuluje – trzeba przyznać – z doskonała zgodnością. Dla Windows Emulowane są jednocześnie karty muzyczne wraz z tzw. modułami brzmień 1. Ściągamy Dosboksa i instalujemy go. Wavetable (sample instrumentów): 2. Na dysku tworzymy folder, który potem będzie naszą partycją C. — Roland, Dla przykładu: na dysku C zakładamy folder DOS. — Yamaha OPL 1, 2, 3,

numer 19 – 2008 11 System

3. Dla późniejszej wygody wgrywamy tam Norton Commandera, Xtree lub Katalogiem DOS może być wspólny katalog na partycji FAT32/NTFS dla Dos Navigatora. Linuksa i Windows. Trzeba tylko pamiętać o podmontowaniu tej partycji przed 4. Do folderu z zainstalowanym Dosboksem wgrywamy plik doxbox.conf. uruchomieniem Dosboksa. W naszym przykładzie będzie to mount c c:\dos Tajemnice pliku dosbox.conf 5. Ostatnie linijki to po prostu uruchamianie Norton Commandera, żeby za Spójrzmy na plik dosbox.conf i jego sekcje. Od prawidłowych wpisów każdym uruchomieniem nie wpisywać denerwujących poleceń DOSa. w tym pliku zależy, czy gra zadziała na słabszym sprzęcie lub czy za bardzo Dla Linuksa nie spowolni nam systemu operacyjnego. Oto opis jego parametrów. wartości true/false (prawda/fałsz). W praktyce, oznacza czy dana funkcja jest włączona 1. instalujemy Dosboksa. Dla początkujących najłatwiejsza metoda – program Klik czy nie. fullscreen Jeżeli w systemie nie ma zainstalowanego Klika ściągamy i in- – pełny ekran tak/nie, fulldouble stalujemy poleceniem konsoli: – podwójne buforowanie pamięci ekranu tak/nie, fullresolution – rozdzielczość do jakiej skalowany będzie obraz w trybie „peł- wget klik.atekon.de/client/install -O -|sh ny ekran”, Potrzebne to jest do uruchamiania wszystkich programów ze windowresolution – rozdzielczość w trybie okna. Wartość „oryginal” odpo- strony: http://klik.atekon.de wiada za oryginalną rozdzielczość gry, Nastepnie w przeglądarce Firefox lub Konqueror, klikamy: output – tu ustawiamy w jakim trybie chcemy, aby Dosbox obsługiwał naszą http://dosbox.klik.atekon.de/. Gotowe kartę graficzną („prawdziwą”). Jeżeli nasza karta graficzna obsługuje ak- W prawie wszystkich nowych dystrybucjach LiveCD jest już celerację 3D najlepiej ją włączyć. Wygładza to czcionki DOSa oraz grafikę Klik, więc wystarczy tylko wejść na stronę i go ściągnąć. gier. Ma duże znaczenie dla szybkości emulacji. W Windows najlepszym Debian. ustawieniem będzie ddraw (Direct Draw), w Linuksie/Mac OSX będzie to Jako root wpisujemy w konsoli: OpenGL. Oczywiście, można także w Windows ustawić OpenGL, a w Li- nuksie Direct Draw, ale w praktyce nie działa to zbyt dobrze i niektóre apt-get install dosbox programy się nie uruchomią. Jeżeli posiadamy kartę grafiki bez akceleracji Inne: wpisujemy Overlay (nowsze układy) lub Surface (starsze układy, np. Ati Wykonujemy w konsoli jako root po kolei polecenia w katalogu Rage 128). W tym trybie główny ciężar obsługi grafiki przejmuje procesor ze ściągniętym i rozpakowanym Dosboksem: komputera, co nie odbywa się bez wpływu na wydajność emulacji, autolock – przechwytywanie myszy dla Dosa. Ponownie przypisanie myszy configure do Windows (czy innego systemu) jest możliwe po wciśnięciu kombinacji make install klawiszy [Ctrl]+[F10], Gotowe. sensitivity – czułość myszy w DOS, 2. Zakładamy w katalogu /home/nasz_użytkownik katalog, który będzie na- waitonerror - oczekiwanie po komunikacie o błędzie, szą partycją C w Dosboksie – np. /home/raptou/dos priority – priorytet Dosboksa w systemie: im wyższy, tym większa „moc” 3. Do katalogu /home/nasz_uzytkownik kopiujemy plik dosbox.conf. procesora jest przydzielana w pierwszej kolejności emulatorowi, 4. Edytujemy go analogicznie jak w Windows – czyli zmieniamy ostatnie linijki mapperfile – układ klawiatury. Podajemy, gdzie się znaduje. Domyślnie jest to pliku na takie, jakie mamy u siebie. plik mapper.txt, Gotowe. machine – jaką kartę graficzną chcemy emulować. Możliwe są CGA, EGA, Hercules/MDA, VGA (w tym SVGA VESA), captures – nazwa pliku-zrzutu ekranu,

numer 19 – 2008 12 System memsize – wielkość pamięci emulowanego układu graficznego. Najczęściej nie mount c Dysk/ścieżka/ścieżka(...) powinno się ustawiać do gier więcej niż 4096 kB. Wyższych wartości używa Należy zwrócić uwagę na zamianę kierunku ukośników w systemach Micro- się rzadko, głównie do wymagających programów graficznych, softu! frameskip – ilość traconych ramek obrazu. Domyślnie wartość=1, ale na wol- Gdy decydujemy się na „przenośny” emulator, używany np. na pendrive niejszych komputerach czasem trzeba wpisać wyższą wartość. Z jednej stro- możemy użyć uniwersalnych znaków zastępczych, gdy na różnych kompute- ny spowoduje to efekt stroboskopowy, ale z drugiej czasem może w ogóle rach położenie naszego dysku Flash będzie różne i będą różne litery dysku. umożliwić grę. Można także „regulować” ten parametr podczas gry klawi- W tym momencie możemy nazwę dysku pominąć, a zastosować „jeden katalog szami [Ctrl]+[F7] i [Ctrl]+[F8], wyżej”, „dwa katalogi wyżej”. Nazwę dysku zastępujemy kropką lub dwiema aspect, scaler – te parametry są odpowiedzialne za jakość obrazu w niskich kropkami. rozdzielczościach programów na pełnym (głównie) ekranie, aby np. grę Przykładowo: w rozdzielczości 320x200 punktów można było uruchamiać na pełnym ekra- nie współczesnego monitora w poprawionej jakości. mount c ..\dos core – emulacja szybkości procesora. Najlepiej pozostawić wartość auto. oznacza zamontuj jako dysk C katalog znajdujący się dwa katalogi w górę. cycles – szybkość wykonywania instrukcji. Przydatne zwłaszcza gdy, szybkość Uwaga na ukośniki! W systemach Windows będzie to „\”, a w Linuksie będzie starych gier zależała wprost od częstotliwości taktowania procesora, to „/”. cycleup, cycledown – kroki „ręcznej regulacji szybkości emulacji. Dokonuje się Gdy mamy już zdefiniowany katalog symulujący dysk C, możemy do niego jej klawiszami [Ctrl]+[F11] i [Ctrl]+[F12]. skopiować programy, których będziemy używać. Najczęściej będzie to nakład- Ustawienia kart muzycznych pominę. Z mojego doświadczenia wynika, że ka Norton Commander, ale nic nie stoi na przeszkodzie, aby powielać kata- najlepiej pozostawić ustawienia domyślne. Również ustawienia pamięci zale- log z Dosboksem i katalog pseudo-dysku C utworzyć samodzielne, niezależne cam pozostawić domyślne, choć można w razie potrzeby wyłączyć poszczegól- paczki z samymi grami. W ten sposób tworzymy samodzielne gry pod system ne rodzaje pamięci w przypadku konfliktu. do nich nieprzeznaczony, które będą dostępne po kliknięciu w ikonę Dosbox. Bardzo ważną sekcją jest sekcja [autoexec]. Jej rola polega na tym samym, Wystarczy (najczęściej) w następnej linii po mount, wpisać nazwę pliku co plik autoexec.bat w „prawdziwym” systemie DOS. Służy np. do załadowa- uruchamiającą dany program/grę. nia przed grą innych programów rezydentnych, jak, dla przykładu, sterownik Możemy także na samym końcu pliku dosbox.conf dopisać polecenie exit, VESA uniVBE, czy też wymuszenia uruchomienia konfiguracji gry przed jej które po wyjściu z gry spowoduje natychmiastowy powrót do Windows (czy właściwym uruchomieniem. Można też zdefiniować niektóre zmienne jak np. innego systemu, na którym pracujemy) PATH, SET (przykład set blaster=a220 i7 d1 t4). Z tego poziomu można wy- woływać także inne pliki wsadowe (batch). Należy jednak pamiętać, że DOS Opis klawiszy Dosboksa emulowany w Dosboksie jest dość mocno okrojony w przeciwieństwie do ory- Win/Linux ginalnego systemu DOS np. Microsoftu. Nie wszystkie polecenia zadziałają. [Ctrl]+[ENTER] – okno/fullscreen, Przy wywołaniu innego pliku wsadowego sekcja autoexec przestanie być wy- [Ctrl]+[F11]/[F12] – cykle procesora down/up, konywana po zakończeniu wykonania pliku zewnętrznego. [Ctrl]+[F7]/[F8] – frameskip down/up – pomijanie ramek przydatne dla Sekcja [autoexec] zawsze powinna zaczynać się od zdefiniowania katalogu, wolniejszych komputerów, który będzie „udawał” dysk C w Dosboksie. [Ctrl]+[F9] – kill – gdyby program się zawiesił na całym ekranie i trzeba Służy do tego polecenie mount. Składnia tego polecenia będzie przykładowo było natychmiast przerwać Dosboksa, wyglądać tak: [Ctrl]+[F10] – odzyskanie myszy. dla Windows: Mac mount c Dysk\ścieżka\ścieżka(...) [Option]+[ENTER] – okno/fullscreen, dla systemów Unix/Linux: [Option]+[F11]/[F12] – cykle procesora down/up,

numer 19 – 2008 13 System

[Option]+[F7]/[F8] – frameskip down/up – pomijanie ramek przydatne dla wolniejszych komputerów, [dosbox] [Option]+[F9] – kill – gdyby program się zawiesił na całym ekranie i trzeba # language -- Select another language file. było natychmiast przerwać Dosboksa, # memsize -- Amount of memory dosbox has in megabytes. [Ctrl]+[F10] – odzyskanie myszy. # machine -- The type of machine tries to emulate: hercules, cga, # tandy, pcjr, vga. Przykładowa, najbardziej uniwersalna konfiguracja pliku dosbox.conf. Li- # captures -- Directory where things like wave,midi,screenshot dosbox.conf sting ten należy wkleić do pliku , utworzonego w jakimś edytorze # get captured. tekstu (notatniku itp.), a następnie zapisać jako plik tekstowy. Plik ten należy następnie skopiować do katalogu, w którym znajduje się plik wykonywalny language= Dosbox. machine=vga [sdl] captures=capture # fullscreen -- Start dosbox directly in fullscreen. memsize=64 # fulldouble -- Use double buffering in fullscreen. # fullresolution -- What resolution to use for fullscreen: original [render] # or fixed size (e.g. 1024x768). # frameskip -- How many frames dosbox skips before drawing one. # windowresolution -- Scale the window to this size IF the output # aspect -- Do aspect correction, if your output method doesn’t # device supports hardware scaling. # support scaling this can slow things down!. # output -- What to use for output:surface,overlay,opengl,openglnb, # scaler -- Scaler used to enlarge/enhance low resolution modes. # ddraw. # Supported are none, normal2x, normal3x, advmame2x, # autolock -- Mouse will automatically lock, if you click on # advmame3x, advinterp2x, advinterp3x, tv2x, tv3x, rgb2x, # the screen. # rgb3x, scan2x, scan3x. # sensitiviy -- Mouse sensitivity. # waitonerror -- Wait before closing the console if dosbox has frameskip=1 # an error. aspect=true # priority -- Priority levels for dosbox: lowest, lower, normal, scaler=normal2x,advmame2x # higher, highest. Second entry behind the comma is # for when dosbox is not focused/minimized. [cpu] # mapperfile -- File used to load/save the key/event mappings from. # core -- CPU Core used in emulation: simple,normal,full,dynamic. # usescancodes -- Avoid usage of symkeys, might not work on all # cycles -- Amount of instructions dosbox tries to emulate each # operating systems. # millisecond. Setting this higher than your machine can # handle is bad! You can also let DOSBox guess the correct fullscreen=true # value by setting it to auto. Please note that this fulldouble=true # guessing feature is still experimental. fullresolution=1024x768 # cycleup -- Amount of cycles to increase/decrease with keycombo. windowresolution=original # cycledown Setting it lower than 100 will be a percentage. output=opengl autolock=true core=auto sensitivity=100 cycles=max waitonerror=true cycleup=0 priority=higher cycledown=0 mapperfile=mapper.txt usescancodes=true [mixer]

numer 19 – 2008 14 System

# nosound -- Enable silent mode, sound is still emulated though. oplrate=22050 # rate -- Mixer sample rate, setting any devices higher than this # will probably lower their sound quality. [gus] # blocksize -- Mixer block size, larger blocks might help sound # gus -- Enable the Gravis Ultrasound emulation. # stuttering but sound will also be more lagged. # gusbase,irq1,irq2,dma1,dma2 -- The IO/IRQ/DMA addresses of the # prebuffer -- How many milliseconds of data to keep on top of # Gravis Ultrasound. (Same IRQ’s and DMA’s are OK.) # the blocksize. # gusrate -- Sample rate of Ultrasound emulation. # ultradir -- Path to Ultrasound directory. In this directory nosound=false # there should be a MIDI directory that contains rate=44000 # the patch files for GUS playback. Patch sets used blocksize=8192 # with Timidity should work fine. prebuffer=50 gus=true [midi] gusrate=44000 # mpu401 -- Type of MPU-401 to emulate: none, uart or intelligent. gusbase=240 # device -- Device that will receive the MIDI data from MPU-401. irq1=5 # This can be default,alsa,oss,win32,coreaudio,none. irq2=5 # config -- Special configuration options for the device. dma1=3 # In Windows put the id of the device you want to use. dma2=3 # See README for details. ultradir=C:\ULTRASND mpu401=intelligent [speaker] device=default # pcspeaker -- Enable PC-Speaker emulation. config= # pcrate -- Sample rate of the PC-Speaker sound generation. # tandy -- Enable Tandy Sound System emulation (off,on,auto). [sblaster] # For auto Tandysound emulation is present only if # sbtype -- Type of sblaster to emulate:none,sb1,sb2,sbpro1, # machine is set to tandy. # sbpro2,sb16. # tandyrate -- Sample rate of the Tandy 3-Voice generation. # sbbase,irq,dma,hdma -- The IO/IRQ/DMA/High DMA address of # disney -- Enable Disney Sound Source emulation. # the soundblaster. # mixer -- Allow the soundblaster mixer to modify the dosbox mixer. pcspeaker=true # oplmode -- Type of OPL emulation: auto,cms,opl2,dualopl2,opl3. pcrate=22050 # On auto the mode is determined by sblaster type. tandy=auto # All OPL modes are ’Adlib’, except for CMS. tandyrate=22050 # oplrate -- Sample rate of OPL music emulation. disney=true sbtype=sb16 [bios] sbbase=220 # joysticktype -- Type of joystick to emulate: none, 2axis, 4axis, irq=7 # fcs (Thrustmaster) ,ch (CH Flightstick). dma=1 # none disables joystick emulation. hdma=5 # 2axis is the default and supports two joysticks. mixer=true oplmode=opl3 joysticktype=none

numer 19 – 2008 15 System

[serial] # serial1-4 -- set type of device connected to com port. # Can be disabled, dummy, modem, directserial. # Additional parameters must be in the same line in the # form of parameter:value. Parameters for all types are # irq, startbps, bytesize, stopbits, parity (all optional). # for directserial: realport (required). # for modem: listenport (optional). # Example: serial1=modem listenport:5000 serial1=dummy serial2=dummy serial3=disabled serial4=disabled lpt1=true lpt1=enabled

[dos] # xms -- Enable XMS support. # ems -- Enable EMS support. # umb -- Enable UMB support (false,true,max). xms=true ems=true umb=true

[ipx] # ipx -- Enable ipx over UDP/IP emulation. ipx=true

[tcp] tcp=true

[autoexec] # Lines in this section will be run at startup. mount c ./c set blaster=a220 i5 d1 t4 c: illusion.exe config /o exit

numer 19 – 2008 16

Software LATEX - piszemy pracę magisterską, ciąg dalszy Gabriela Grusza, Tomasz Łuczak

W poprzednim artykule poznaliśmy podstawowe „zaklęcia”, r do prawej niezbędne do napisania pracy. Pora na tabele, rysunki, wyrażenia Kreski pionowe rozdzielające litery oznaczają, że kolumny będą rozdzielane matematyczne i bibliografię. właśnie pionowymi kreskami. Kreski poziome ograniczające tabelę od góry i od dołu oraz oddzielające Wstawiamy tabele i ilustracje pierwszy wiersz wstawiamy poleceniem \hline (wiersze 5, 7, 10). Table i ilustracje w tekście powinny znajdować się za tekstem, w którym są Komórki w wierszu rozdzielamy znakiem „&” (patrz wiersze 6, 8 i 9). Wszyst- opisywane. kie wiersze tabeli kończymy znakami „\\” – dotyczy to także ostatniego wier- Dla ułatwienia przekazu, dobrze jest opatrywać rysunki i tabele tytułem, sza. a także numerować je. Automatyczną numeracją zajmie się TEX, my musimy Szerokość kolumny w tabeli jest ustalana automatycznie, na podstawie naj- jedynie wstawić etykiety tuż za podpisami, a w tekście odwoływać się do ety- szerszego tekstu wpisanego w komórkach w danej kolumnie. Oznacza to, że kiety, np. tabela 1. może się zdażyć sytuacja, że tabela „wyjdzie” poza margines, a nawet poza Tabele kartkę. Tabelę umieszczamy w środowisku tabular (wiersz 4), którego parametrem By to obejść, wystarczy zadeklarować szerokość kolumny, wpisując zamiast p{ } jest liczba kolumn i ich justowanie. Tabelę z podpisem (wiersz 3) umieszczamy litery określającej kolumnę: wymiar , jak w przykładzie poniżej (wiersz 1). w pływającym środowisku table (wiersz 1). Środowisko pływające zapewnia 1 \begin{tabular}{|p{2cm}|p{1.5cm}|} To jest tekst To jest nam umieszczenie tabeli wraz z podpisem w odpowiednim miejscu lub, jeśli 2 \hline w środowi- tekst w 3 To jest tekst w środowisku tabular tabela się nie zmieści, przeniesienie na następną stronę. Ponadto, tytuł tabeli sku tabular środo- 4 To jest tekst w środowisku tabular & zostanie umieszczony w spisie tabel. To jest tekst wisku 5 1 \begin{table} To jest tekst w środowisku tabular w środowi- tabular 6 2 \begin{center} To jest tekst w środowisku tabular \\ 7 sku tabular 3 \caption{Podpis}\label{tab:tabelaN} \hline 8 To jest tekst To jest 4 \begin{tabular}{|r|l|l|} To jest tekst w środowisku tabular 9 5 \hline To jest tekst w środowisku tabular & w środowi- tekst w Tabela 1. Podpis 10 6 Lp. & Co & Czym \\ To jest tekst w środowisku tabular sku tabular środo- Lp. Co Czym 11 7 \hline To jest tekst w środowisku tabular \\ To jest tekst wisku 12 \hline 8 1. & Zupa & Łyżką \\ 1. Zupa Łyżką w środowi- tabular 13 \end{tabular} 9 2. & Lody & Łyżeczką \\ 2. Lody Łyżeczką sku tabular 10 \hline Czasem zdarzy się potrzeba połączenia komórek w wierszach, czasem bę- 11 \end{tabular}

12 \end{center} dzie potrzeba rozdzielić dwa wiersze tylko w części. Są to na szczęście rzadkie

13 \end{table} przypadki, łatwe do zrealizowania i szczegółowo, z przykładami opisane w [1]. Wracając do liczby kolumn i justowania w kolumnach, podajemy liczbę za Znacznie częściej możemy się spotkać z długą tabelą, przekraczającą dłu- tabular pomocą – kolejno – umieszczanych liter „l”, „c” i „r”. Liczba liter oznacza liczbę gość strony. Wówczas zamiast środowiska możemy użyć środowisko longtable kolumn, a justowanie określa litera: . Należy wówczas uzupełnić preambułę poleceniem: l do lewej, \usepackage{longtable} c środkowanie,

numer 19 – 2008 18 Software

Ilustracje Wyrażenia matematyczne Ilustracje, analogicznie jak tabele, umieszczamy w pływającym środowisku Jakość składu wyrażeń przez TEX-a jest legendarna. Zobaczmy, jakie to pro- figure (wiersz 1). ste i zarazem ładne. Środowisko center (wiersz 2) powoduje wyśrodkowanie zawartości w ko- Wyrażenia matematyczne składa się w specjalnym trybie, tzw. matematycz- lumnie. nym. Do trybu matematycznego przechodzi się, w zależności od potrzeb, na

1 \begin{figure} kilka sposobów:

2 \begin{center}

3 \includegraphics[width=5cm]{zamek.jpg} Jeśli chcemy umieścić znaki lub wy- Wyrażenie matematyczne w tek-

4 \caption{Zamek w Ogrodzieńcu}\label{fig:rysM} rażenie matematyczne w wierszu tek- ście, α + 3(γ + ω) = 0.

5 \end{center} stu, to wpisujemy je pomiędzy znakami

6 \end{figure} „$”. Rysunek umieszczamy jak w wierszu 3 – poleceniem includegraphics, któ- $\alpha + 3(\gamma + \omega) = 0$. re posiada parametr obowiązkowy – nazwę rysunku i opcjonalny (podawany w nawiasie kwadratowym). W naszym przykładzie podaliśmy jako paramter Jeśli chcemy umieścić matematykę w Wyrażenie matematyczne w osob- opcjonalny szerokość rysunku. osobnym wierszu i wyśrodkowaną, nym wierszu i wyśrodkowane: Podpis pod rysunkiem i ewentualnie etykietę, do której będziemy się od- symbole wpisujemy pomiędzy podwój- $$ woływać, umieszczamy pod rysunkiem (wiersz 4). nymi znakami „ ”. α + 3(γ + ω) = 0 Więcej o umieszczaniu rysunków można znaleźć m.in. w [2,3]. $$\alpha + 3(\gamma + \omega) = 0$$

Nienumerowane równanie wpisujemy w środowisku displaymath. \begin{displaymath} \alpha + 3(\gamma + \omega) = 0 α + 3(γ + ω) = 0 \end{displaymath}

Numerowane równanie wpisujemy w środowisku equation \begin{equation} α + 3(γ + ω) = 0 (1) \alpha + 3(\gamma + \omega) = 0 \end{equation}

Odnośniki do równań W równaniu wpisujemy: \label{tekst}, a w tekście, w miejscu, w którym odnosimy sie do tego równania, wpisujemy \ref{tekst}. Na przykład odnośnik do równań2i3. Indeksy Indeksy górny i dolny wprowadzamy po znakach specjalnych – odpowied- Rysunek 1. Zamek w Ogrodzieńcu nio „ˆ” i „_”. Przykłady:

numer 19 – 2008 19 Software

\begin{equation} Odstępy \label{indeksy} Do dyspozycji mamy polecenia \quad i \qquad oraz twarde spacje: a(x,y,z)_{x}^2+b(x,y,z)_{yz}^2=c(x,y,z)_{xz}^2 \end{equation} $$\vec{m} + \vec{n} +\ldots = 2\vec{n} \quad 2 2 2 a(x, y, z)x + b(x, y, z)yz = c(x, y, z)xz (2) \vec{m} + \vec{n} +\ldots = 2\vec{n} $$ \begin{equation} ~m + ~n + ... = 2~n ~m + ~n + ... = 2~n \label{indeksyb} Z b \int_{a}^{b}2zy^{xz}dy 2zyxzdy (3) $$\vec{m} + \vec{n} +\ldots = 2\vec{n} \end{equation} a \qquad \vec{m} + \vec{n} +\ldots = 2\vec{n} $$ Ułamki ~m + ~n + ... = 2~n ~m + ~n + ... = 2~n Do tworzenia ułamków wykorzystujemy polecenie \frac. Przykład: \begin{equation} Nawiasy \lim_{n\to\infty}\sum_{k=1}^{n}\frac{1}{k^2}=\frac{\pi ^2}{6} Są dostępne następujące nawiasy: \end{equation}  ! "#  ()   h i  n o ( )[ ] { } | | n 2 X 1 π lim = (4) n→∞ k2 6 k=1 Odpowiednie wielkości otrzymuje się, wpisując nawias (np. „(”) bez polecenia \big( \bigg( \Big( \Bigg( Pierwiastki lub wpisując , , albo . W równaniach, nawiasy „dopasują” się wielkością do swojego wnętrza, jeśli \begin{equation} będziemy – dla rozróżnienia odpowiednich par nawiasów – używać poleceń: \sqrt[4]{\sqrt{2x^2+5} + \sqrt[3]{y+z}} \neq \sqrt[4]{\sqrt{2x^2+5}} + \sqrt[4]{\sqrt[3]{y+z}} \left( \right) \left[ \right] \left\{ \right\} \end{equation} q q q 4 p √ 4 p 4 √ Wyrażenia rozbudowane w pionie 2x2 + 5 + 3 y + z 6= 2x2 + 5 + 3 y + z (5) Do robienia wyrażeń matematycznych, których elementy są wyrównanie Na dole . . . i na górze . . . w pionie (np. układy równań, macierze) stosuje się wewnątrz trybu matema- tycznego środowisko array, które działa podobnie do tabular. Przykładem Na górze i na dole . . . wpisujemy używając polecenia \ldots w trybie ma- jest równanie6: tematycznym: \begin{equation} $$\overline{m+n} + \ldots = 2n$$ \label{macierz} m + n + ... = 2n A = \begin{array}{ccc} a_{11} & a_{12} & a_{13} \\ a11 a12 a13 $$\underbrace{m+n + \ldots}_{abc} = 2n$$ m + n + ... = 2n a_{21} & a_{22} & a_{23} \\ A = a21 a22 a23 (6) | {z } a_{31} & a_{32} & a_{33} a31 a32 a33 abc \end{array} $$\vec{m} + \vec{n} +\ldots = 2\vec{n}$$ \end{equation} ~m + ~n + ... = 2~n $$\hat{m} + \tilde{n} +\ldots = 2\dot{n}$$ mˆ +n ˜ + ... = 2n ˙

numer 19 – 2008 20 Software

Inne przykłady: Bibliografia 1. macierze: Bibliografię w LATEX-u możemy podzielić na: bazę literatury, cytowania $$B = \left| w tekście oraz styl cytowań. Podejście takie pozwala nam wybrać odpowiedni \begin{array}{cc} styl nawet w ostatniej chwili. \sin 2x & a+b+c \\ sin 2x a + b + c 0 & -\cos 2y B = Cytowanie \end{array} 0 − cos 2y Cytowanie literatury w tekście polega na odwołaniu sie do pozycji biblio- \right|$$ graficznej za pomocą poleceń: \cite{id1} 2. układy równań: \cite{id1,id2} $$\left\{ \begin{array}{l}  2z + yx + z = 0 gdzie id to identyfikator pozycji. Drugie polecenie pozwala w jednym odno- 2z+yx+\frac{z}{2} = 0 \\ \\  2  śniku odnieść się do dwóch pozycji. 5x + y +z^2 = 15yx \\ \\  5x + y + z2 = 15yx Podczas kompilacji dokumentu LATEX automatycznie ponumeruje pozycje 3z + \frac{x}{y} = \frac{1}{2}  i w miejscu cytowania wstawi odnośnik do pozycji. Format i zawartość odno- \end{array}   x 1 śnika zależy od wybranego stylu bibliograficznego, domyślna postać to numer \right .$$ 3z + y = 2 pozycji w nawiasach kwadratowych, czyli [4], a przy wielokrotnym odwołaniu: 3. układy równań z poleceniem \displaystyle: [4,5]. $$\left\{ Polecenie \nocite{id} przy korzystaniu z bazy bibliograficznej spowo- \begin{array}{l}  z duje umieszczenie pozycji w spisie literatury bez jawnego cytowania w tekście.  2z + yx + = 0 \displaystyle 2z+yx+\frac{z}{2} = 0 \\ \\  2  Bibliografia „ręczna” \displaystyle 5x + y +z^2 = 15yx \\ \\   2 \displaystyle 3z + \frac{x}{y} = \frac{1}{2} 5x + y + z = 15yx Jeśli mamy niezbyt dużo pozycji w literaturze i nie mamy w planach wy- \end{array}  korzystywać ich później, to możemy obyć się bez oddzielnej bazy bibliografii.  \right .$$  x 1 Wystarczy, że w miejscu, w którym ma pojawić się bibliografia, wpiszemy  3z + =  y 2 cytowane przez nas pozycje: 4. układy równań z zastosowaniem tekstu we wzorze: 1 \begin{thebibliography}{9} $$x = \left\{ 2 \bibitem{mroczek} Mroczek A. \textit{O~fotografowaniu}, \begin{array}{ll} 3 Watra, Warszawa 1987 a+b+c \quad & {\rm dla\ } x > 0, \\ 4 \bibitem{wisz1} Wiszniewski A. \textit{Sztuka mówienia} a-b \quad & {\rm dla\ } x \le 0.  a + b + c dla x > 0, x = 5 Videograf II, Katowice 2003 \end{array} a − b dla x ≤ 0. 6 \end{thebibliography} \right .$$ W wierszu nr 1 zwróćmy uwagę na parametr środowiska thebibliography „{9}”, zawiera on tekst, którego szerokość określa, ile miejsca LATEX ma za- Dodatkowe możliwości rezerwować na numer pozycji. W tym przypadku będzie to miejsce na jedną Wspomniane powyżej przykłady to nie wszystko, co LATEX potrafi – to je- cyfrę. dynie przykłady. Można skorzystać z dodatkowych pakietów, by te możliwości Każda pozycja bibliograficzna rozpoczyna się poleceniem \bibitem (wier- rozszerzyć – uzyskać np. znaki kaligrafowane, pogrubione i inne. sze 2 i 4), którego parametrem jest identyfikator pozycji. Reszta tekstu, to wła- snoręcznie sformatowany wpis bibliograficzny. Po kompilacji, spis literatury wygląda jak niżej.

numer 19 – 2008 21 Software

Aplikacja napisana jest w „czystym” Tcl/Tk [4] i można ją uruchomić prak- Literatura tycznie na każdym systemie i sprzęcie, na który istnieje interpreter języka, czyli [1] Mroczek A. O fotografowaniu, Watra, Warszawa 1987 praktycznie wszędzie. Każda poważna dystrybucja Linuksa czy *BSD zwykle [2] Wiszniewski A. Sztuka mówienia Videograf II, Katowice 2003 zawiera już interpreter Tcl/Tk. JabRef [5] to znacznie bardziej rozbudowana aplikacja napisana w Javie, Podane rozwiązanie jest wygodne przy nielicznej liczbie wpisów. Sorto- dzięki czemu jest również przenośna i dostępna dla wielu systemów operacyj- wanie pozycji musimy wykonać samodzielnie, za to możemy je sformatować nych. tak, jak chcemy. Przy dłuższych bibliografiach lub gdy będziemy zamieszczać literaturę w innych publikacjach, warto korzystać z bazy bibliograficznej. Baza bibliograficzna Baza bibliograficzna to plik, w którym zbieramy nasze źródła literaturowe, które zamierzamy wykorzystać w bieżącej pracy, jak i w innych. LATEX wybierze i umieści w spisie literatury tylko te pozycje, które zacytowaliśmy. Istotnym elementem każdego wpisu do bazy jest jego identyfikator, który musi być unikalny, tak, by LATEX mógł jednoznacznie zidentyfikować pozycję. Identyfikator powinien składać się tylko ze znaków alfabetu łacińskiego i cyfr, nie może zawierać spacji. Struktura pliku nie jest skomplikowana, ale by nie zagłębiać się w możli- wościach, a przede wszystkim by uniknąć błędów, polecam wykorzystać jeden z wielu gotowych programów do zarządzania bazą bibliograficzną. Godne polecenia są dwa programy: tkbibtex i JabRef. Pierwszy z nich – tkbibtex [6] – to prosta w użyciu aplikacja do zarządzania bazą bibliograficzną.

Rysunek 3. Okno programu JabRef Format i zawartość pozycji zależy od wybranego stylu bibliograficznego, domyślna postać to numer pozycji w nawiasach kwadratowych. Dzięki temu, możemy z jednej bazy bibliograficznej korzystać w różnych publikacjach i ko- rzystając z różnych styli automatycznie formatować odnośniki spis literatury według różnych wymagań. Generowanie bibliografii z bazy Rysunek 2. Okno programu Tkbibtex Korzystając z bazy bibliograficznej, w miejscu w którym ma zostać wyge- nerowany spis literatury, wstawiamy polecenia:

numer 19 – 2008 22 Software

\bibliographystyle{plain} \bibliography{mojabaza} Pierwsze z nich określa styl cytowań i pozycji bibliograficznej. Przykładowy styl plain można przyjąć jako domyślny. Drugie polecenie powoduje wstawienie z pliku bazy o nazwie mojabaza po- zycji użytych i posortowanych według reguł określonych w stylu. LATEX sam nie sortuje i nie wybiera pozycji z bazy, do tego służy program bibtex. Dystrybucje TEX-a standardowo zawierają program bibtex. Posiadając bazą bibliograficzną oraz wstawione cytowania w tekście, proce- dura kompilacji zawiera uruchomienie programu bibtex, czyli: pdflatex dokument bibtex dokument pdflatex dokument

Przy pierwszej kompilacji dokumentu, LATEX zapisze listę identyfikatorów, które znajdzie w dokumencie. Program bibtex na podstawie uprzednio wyge- nerowanej listy wybierze tylko cytowane pozycje i posortuje je. Przy ostatniej kompilacji, LATEX umieści w spisie listeratury wybrane pozycje i sformatuje je zgodnie z wybranym stylem. Przykłady stylów można znaleźć w [7]. Korzystanie z bazy bibliograficznej pozwala na zbieranie źródeł i późniejsze wykorzystywanie ich w swoich publikacjach. Podsumowanie Po przestudiowaniu i przećwiczeniu przykładów, nie powinniśmy obawiać się napisania pracy magisterskiej w LATEX-u ani na kierunkach humanistycz- nych, ani technicznych. W kolejnej części zajmiemy się kartami początkowymi naszej pracy.

Odnośniki

[1] H. J. Greenberg A Simplified Introduction to LATEX ftp://sunsite.icm.edu.pl/ pub/CTAN/info/simplified-latex/simplified-intro.ps [2] T. Oetiker i inni Nie za krótkie wprowadzenie do systemu LATEX 2ε ftp://ftp.gust. org.pl/pub/CTAN/info/lshort/polish/lshort2e.pdf [3] W.Myszka i E.Rafajłowicz LATEX zaawansowane narzędzia PLJ, Warszawa 1996 [4] http://www.tcl.tk/ [5] http://jabref.sourceforge.net/ [6] http://www.ctan.org/tex-archive/biblio/bibtex/utils/tkbibtex/ [7] http://www.is.umk.pl/~zelek/kurst/kkt-w5.pdf

numer 19 – 2008 23 Software Torrentflux Katarzyna Myrek – Olivia

Sieć torrent staje się coraz popularniejsza i całkowicie legalna. firmy hostingowe przygotowują specjalne wewnętrzne repozytoria dla swoich Można przez nią ściągać najnowsze filmy, muzykę czy chociażby serwerów. Czasami są one jednak – o dziwo – znacznie wolniejsze i mają starsze prawie każdą dystrybucję Linuksa. pakiety. Na początek musimy szybko zainstalować serwer Apache wraz z PHP, TorrentFlux to bezpłatny klient torrent, który do działania potrzebuje ser- MySQL-em i phpMyAdminem (dla wygody). wera www. W ciągu ostatnich kilku miesięcy stał się popularny wśród użyt- Robimy to poleceniami: kowników nie lubiących linii komend. # apt-get install apache2 apache2-doc \ apache2-mpm-prefork apache2-utils libexpat1 ssl-cert

Powyższa komenda to zainstalowanie Apache; PHP doinstalowujemy polece- niem: # apt-get install libapache2-mod-php5 php5 \ php5-common php5-curl php5-dev php5-gd php-pear php5-mcrypt

Rysunek 1. Ekran TorrentFlux 2.3 Aby zainstalować TF potrzebujemy: — dowolnej dystrybucji Linuksa, — serwera Apache z obsługą PHP, — serwera i klienta MySQL (phpMyAdmin dla mniej zaawansowanych), — Python w wersji co najmniej 2.2. Rysunek 2. Domyślna strona po instalacji apache2 Instalacja Instalację MySQL i phpMyAdmin wykonujemy na Debianie następująco: Swoją instalację przeprowadzę na świeżo zainstalowanym Debianie. W praktyce wszystko zajmuje około 10-15 minut, w zależności od miejsca, # apt-get install mysql-server mysql-common \ z którego nasz system pobiera pakiety (można to oczywiście zmienić) – duże mysql-client php5-mysql

numer 19 – 2008 24 Software

Teraz dodajemy nowego użytkownika do serwera MySQL: # mysqladmin -u root password tutajtwojehaslo

Następnie zaś: # cd /etc/apache2/sites-available/ # nano default

I wykomentujemy wpis RedirectMatch \^/\$ /apache2-default/. Na- ciskamy [Ctrl]+[X]i [T] albo [Y] (w zależności od danej konfiguracji edytora). Po wykonaniu tych wszystkich komend, warto jeszcze raz przeładować apache: # /etc/init.d/apache2 restart

Jeśli wystąpi komunikat błędu związany z niemożnością określenia domeny serwera, to nie należy się nim przejmować. Do TorrentFluxa nie potrzeba głęb- szej konfiguracji, a ściślej nie potrzebuje on ustawionej domeny. Jeśli jednak chcesz wszystko zrobić wzorowo do końca, odsyłam do innych artykułów już opublikowanych w Dragonii, traktujących o konfiguracji serwera WWW. Najnowszą wersją phpMyAdmin, podczas pisania artykułu, jest 2.11.4-rc1. Aby zacząć instalację, przechodzimy do katalogu, w którym magazynujemy progra- my - np. „instalki”. Ja trzymam je zawsze w /home/XXX. Wykonujemy następnie komendy: # cd /home/olivia/ Rysunek 3. Edycja pliku konfiguracyjnego phpmyadmina. # wget http://heanet.dl.sourceforge.net/sourceforge/ \ Zapisujemy plik i wszystko powinno być już ustawione. PhpMyAdmin będzie phpmyadmin/phpMyAdmin-2.11.4-all-languages-utf-8-only.tar.gz # tar zxvf phpMyAdmin-2.11.4-all-languages-utf-8-only.tar.gz znajdował się pod adresem: # cd phpMyAdmin-2.11.4-all-languages-utf-8-only http://adres_twojego_serwera/phpMyAdmin. Teraz trzeba pobrać Tor- # cp -R * /var/www/phpMyAdmin rentFluksa:

Następnie wchodzimy do katalogu, do którego przekopiowaliśmy pliki i kopiu- # wget http://www.torrentflux.com/torrentflux_2.3.tar.gz jemy plik config.sample.inc.php na config.inc.php i go odpowiednio Jeśli instalacja odbywa się zdalnie, to można też ściągnąć paczkę na swój kom- edytujemy. puter, aby móc wysłać plik z bazą danych do phpMyAdmina. Po ściągnięciu # cp config.sample.inc.php config.inc.php na serwer archiwum, musimy je rozpakować poleceniem: # nano config.inc.php # tar -zxvf torrentflux_2.3.tar.gz

W $cfg[’blowfish_secret’] = ’’;, między przecinkami wpisujemy do- Najwyższy czas utworzyć bazę danych dla aplikacji. Robimy to w phpMy- wolny ciąg znaków; aby włączyć logowanie przez cookie, edytujemy sekcję Use Adminie. Logujemy się do niego używając loginu: root i hasła, które wpisali- for advanced features. śmy zamiast „tutajwpisztwojehaslo” podczas wcześniejszego etapu. Tworzymy bazę danych i importujemy jej strukturę – znajduje się ona w pliku torrent- flux.sql. Klikamy wykonaj. Jeśli wszystko zostanie poprawnie dodane, zo- baczymy napis „Import zakończony sukcesem, wykonano 50 zapytań”.

numer 19 – 2008 25 Software

Teraz już można obejrzeć efekty swojej pracy. Wchodzimy na adres, pod któ- rym ma się znajdować TF i logujemy się. Wpisujemy login i hasło takie, jakie chcemy już używać. Nowy user zostanie automatycznie utworzony ze statusem głównego admina.

Rysunek 6. Logowanie Po zalogowaniu się zostaniemy przeniesieni do zakładki ustawienia. Na począt- ku dwa pola mogą mieć czerwone światło. Jeden z nich to alarm z powodu Rysunek 4. Tworzenie nowej bazy danych. złych uprawnień do plików, a drugi to ewentualny brak Pythona. Aby temu Teraz trzeba przenieść pliki TorrentFluxa i edytować jego plik konfiguracyj- zaradzić, wracamy do powłoki i wpisujemy polecenie: ny, aby mógł się on połączyć z bazą. # chmod -R 777 downloads # cd torrentflux_2.3/html/ A w razie braku Pythona: # cp -R * /var/www/ # cd /var/www/ Debus:/var/www# apt-get install python # nano config.php Następnie odświeżamy TorrentFluxa. Edytujemy odpowiednie dane i zapisujemy plik. Więcej informacji o sieci Bittorrent można znaleźć w numerze 12. Magazynu Dragonia.

Odnośniki [1] http://www.torrentflux.com/ – oficjalna strona TF [2] http://linuxtracker.org/ – tracker z ogromną ilości torrentów z przeróżnymi dystrybucjami Linuksa Rysunek 5. Edycja config.php. [3] http://www.phpmyadmin.net/home_page/ – oficjalna strona phpMyAdmin

numer 19 – 2008 26 Software

Rysunek 7. Uruchamianie torrenta

Rysunek 8. Lista plików w katalogu użytkownika TF

numer 19 – 2008 27 Software Baza pod kontrolą konsoli – część 6 Krzysztof Biskup – Irish Zapraszam do lektury kolejnej części cyklu artykułów, dotyczą- cych baz danych MySQL. W części tej przedstawię pełną składnie zapytania SELECT, funkcje agregujące, funkcje operujące na napi- sach oraz sposób ich użycia.

Zacznijmy od przedstawienia pełnej składni zapytania SELECT: SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] [HIGH_PRIORITY] [DISTINCT | DISTINCT | ALL] wyrażenie,... [INT {OUTFILE | DUMPFILE} ’nazwa_pliku’ opcje_eksportu] [FROM lista_tabel [WHERE warunki] Rysunek 1. [GROUP BY {liczba | nazwa_kolumn | formula } [ASC | DESC], ...[WITH ROLLUP]] Łatwo możemy w ten sposób sprawdzić, czy wśród naszych stron pojawiają [HEVING warunek ] się serwisy tego samego autora. [ORDER BY {liczba | nazwa_kolumn | formula} [ASC |DESC], ...] Posłuży nam do tego zapytanie o bardzo podobnej składni: [LIMIT [offset] liczba_wierszy | liczba_wierszy OFFSET offset] [PROCEDURE nazwa_procedury(lista_argumentów)] [FOR UPDATE | LOCK IN SHARE MODE]]

Oczywiście, jest to bardzo ogólny schemat, ale obrazuje on kolejność para- metrów występujących w zapytaniu SELECT. Kolejną bardzo przydatną opcją polecenia SELECT jest klauzula GROUP BY, która w połączeniu z funkcjami agregującymi pozwala na automatyczne obli- czanie sum, średnich odchyleń standardowych, czy też na wyszukiwanie war- tości maksymalnych i minimalnych. Przedstawmy kilka prostych przykładów ich użycia: SELECT jezyk, COUNT(*) FROM katalog GROUP BY jezyk; Oczywiście, powyższe zapytanie zsumowało liczbę wierszy, w których pola jezyk miały taka samą wartość. Wynik tego zapytania przedstawia rysunek 1.

Rysunek 2. SELECT autor, COUNT(*) FROM katalog GROUP BY autor;

numer 19 – 2008 28 Software

Jak widać z rysunku 2, nie mamy serwisów w naszej bazie, wykonanych przez tego samego autora; no, chyba, że wśród tych nieokreślonych ;). Aby po- kazać kolejną z możliwości polecenia SELECT, tym razem wykorzystam jeszcze jedną z funkcji operujących na napisach, czyli łańcuchach znaków. Przykład wygląda tak: SELECT AVG(CHAR_LENGTH(opis)) FROM katalog; Dzięki tej prostej konstrukcji, udało mi się wyliczyć średnią długość opisu strony w naszej bazie. Jak widać na rysunku 3, jest to 78 znaków.

Rysunek 4. Teraz pora na przestawienie listy funkcji, które umożliwiają nam takie dzia- łania, czyli funkcji agregujących. Funkcja Znaczenie funkcji AVG(wyr) Oblicza wartość średnią z wyrażenia. BIT_AND(wyr) Wykonuje alternatywę i koniunkcję wyrażeń. COUNT(wyr) Zlicza liczbę wierszy. Rysunek 3. MAX(wyr) Zwraca wartość maksymalną. Podobnie też możemy znaleźć najdłuższy i najkrótszy opis: MIN(wyr) Zwraca wartość minimalną. SELECT MAX(CHAR_LENGTH(opis)), MIN(CHAR_LENGTH(opis)) FROM katalog; STD(wyr) Oblicza odchylenie standardowe. SUM(wyr) Sumuje wartości w kolumnie. I to wszystko w jednym zapytaniu. Wynik tego zapytania przedstawia ry- sunek 4. Powyższy zbiór funkcji można jeszcze uzupełnić o proste działania matema- tyczne na wynikach zwracanych przez funkcje, lub nawet na samych liczbach. Najprostszy przykład może wyglądać tak: SELECT 2+2; Jak widać (rysunek 5), zapytanie zwraca jako wynik sumę liczb. Wygląda to tak, jakby tytułem było działanie, a wartością wynik działania.

numer 19 – 2008 29 Software

Funkcja Znaczenie funkcji HEX(a) Zmienia liczbę a lub napis a na licz- bę a, lub napis w systemie szesnastko- wym. INSERT(n,p,k,s) Zwraca napis s, w którym od pozycji p zastąpiono k znaków ciągiem n. INSTR(s,n) Zwraca numer pozycji wystąpienia p w napisie s, jeśli elementu nie ma, zwraca 0. LEFT(s,k) Zwraca pierwsze k znaków z napisu s. LOAD_FILE(n) Wczytuje plik o nazwie i ścieżce n. LOCATE(p,s[k]) Zwraca pozycję pierwszego wystąpie- nia łańcucha p w słowie s. Jeśli poda- my liczbę k, następuje szukanie od tej pozycji. LOWER(s) Zmienia litery na małe w napisie s. LTRIM(s) Zwraca napis z usuniętymi z początku „białymi” znakami. Rysunek 5. ORD(s) Zwraca kod ASCII znaku s. Kolejny, znacznie większy zbiór funkcji, służy do obsługi napisów: REPEAT(s,k) Powtarza napis s k razy. REPLACE(s,z,d) Zastępuje w napisie ciągi z ciągami d. Funkcja Znaczenie funkcji REVERS(S) Odwraca kolejność liter w napisie. ASCII(znak) Zwraca kod ASCII przekazanego zna- RIGHT(s,k) Zwraca ostatnie k znaków z napisu s. ku. RTRIM(s) Zwraca napis z usuniętymi białymi BIN(liczba) Zmienia liczbę dziesiętną na system znakami z jego końca. binarny. SUBTRING(s,p,d) Zwraca część napisu s od pozycji p o BIT_LENGTH(napis) Zwraca liczbę bitów, z których składa długości d. sie napis. TRIM(s) Zwraca napis bez białych znaków z CHAR(11,12,...) Zmienia liczby na znaki kodów ASCII. początku i końca. CHAR_LENGTH(napis) Zwraca długość napisu. UPPER(s) Zmienia litery na wielkie w napisie s. CONCAT(a,b,...) Zwraca napis scalony z a,b,... CONCAT_WS(s,a,b,...) Zwraca napis scalony z a,b,... poroz- To byłoby na tyle w tej cześć cyklu dotyczącego manipulacji danymi w My- dzielanych separatorem s. SQL. W kolejnej, opiszę funkcje matematyczne oraz funkcje obsługi daty i cza- CONV(a,b,s) Konwertuje liczbę a zapisaną w syste- su. mie b do systemu s. FIELD(s,a,b,c,...) Wyszukuje s w liście a,b,c,... i jako wy- nik zwraca pozycję s, lub 0, jeśli ele- mentu nie znaleziono.

numer 19 – 2008 30 Software Zaawansowana konfiguracja serwera WWW – część 5 Krzysztof Biskup – Irish

W ostatnim numerze Dragonii, opisa- przez wszystkie nowo powstałe serwery wirtualne, łem wykorzystanie programu Webmin do pracujące jako nieszyfrowane. Z kolei opcja XXX konfiguracji serwera Apache. Przyszła po- Serwer wirtualny XXX dotyczy danych szyfrowa- ra na to, aby opisać w jaki sposób – ko- nych, obsługiwanych przez protokół https. Będzie rzystając z programu Webmin – tworzyć ona domyślną opcją dla nowo powstałych serwe- Hosty Wirtualne. rów tego typu. Każdą z pozycji można modyfi- kować, a opcje możliwych ustawień przedstawia Na samym początku, po zalogowaniu, wybie- rysunek 2. ramy oczywiście z menu górnego pozycję serwe- ry, a następnie Serwer WWW Apache. Po załado- waniu strony, przesuwamy ją w dół, aż pojawią się nam opcje Serwery wirtualne. Jeżeli w naszym systemie nie ma jeszcze żadnych serwerów wirtu- alnych, na liście widnieją tylko dwie pozycje, które przedstawia rysunek 1. Rysunek 3. Jak łatwo zauważyć, opcje formularza są pogru- powane w sześć zestawów. 1. Handle connections to address Ten pierwszy zestaw ustawień określa sposób odwołania się do serwera wirtualnego, jego ad- res IP oraz dodatkowe związane informacje. 2. Port W tej pozycji określamy, na jakim porcie będzie pracować serwer wirtualny, zostawienie opcji Rysunek 2. domyślnej oznacza port 80. Jeżeli ustawimy in- Ze względu na ładowanie domyślnych ustawień do ny port, powinniśmy pamiętać o jego odblo- każdego nowego serwera wirtualnego, należy bar- kowaniu w firewallu, aby mógł być dostępny dzo szczegółowo sprawdzić, jakie są te ustawienia, z sieci. 3. Katalog główny dokumentu Rysunek 1. aby przez błędne ustawienia nie doszło do takiej sytuacji, że nasz serwer nie będzie poprawnie za- Ta opcja umożliwia nam określenie lokalizacji Omówmy krótko zastosowanie opcji dziedzi- bezpieczony lub będzie pracował niestabilnie. głównego katalogu dokumentów dla serwera czonych od nadrzędnego obiektu (serwera) przez Poniżej tej listy znajduje się formularz, pola for- wirtualnego, gdzie będą się znajdować doku- wszystkie serwery wirtualne (pod warunkiem, że mularza przedstawia rysunek 3. menty do udostępnienia. nie zostały one jawnie ustawione w opcjach po- 4. Nazwa Serwera szczególnych serwerów wirtualnych). Opcje pozy- Sama nazwa tej opcji wyjaśnia całkowicie jej cji XXX Serwer domyślny XXX dotyczą żądań ob- znaczenie, może tylko dla uściślenia przypo- sługiwanych przez protokół http i zostaną użyte

numer 19 – 2008 31 Software

mnijmy, że jest to nazwa używana przez dany serwer do jego identyfikacji. 5. Add virtual serwer to file W tej pozycji określamy, czy serwer wirtualny ma posiadać oddzielny plik konfiguracyjny i je- śli tak, to podajemy jego lokalizację. Jeśli jednak serwer wirtualny nie będzie miał swojego pli- ku konfiguracyjnego, to jego ustawienia zosta- ną wpisane do głównego pliku konfiguracyjne- go serwera i utworzą w nim pojedynczą sekcję virtual host. 6. Copy directives from W ostatniej opcji możemy wskazać, z jakiej lokalizacji chcemy skopiować dyrektywy. Jeśli jednak nie zamierzamy tego czynić, zostawia- Rysunek 4. Rysunek 6. my niezmienione pole wyboru. Jeżeli wykonaliśmy te czynności, do listy serwerów Po wykonaniu tej czynności, możemy zmienić zostanie dodany nasz nowy serwer. Listę wzboga- kilka opcji ogólnych, dotyczących katalogu (rysu- coną o dwa nowe przedstawia rysunek 5. nek 6), oraz cała gamę szczegółów – począwszy od ustawień dotyczących procesu a, skończywszy na ustawieniach języka. Listę opcji przedstawia rysu- nek 7.

Rysunek 3. Po wypełnieniu kolejnych pól formularza, kli- kamy w przycisk Create New, aby utworzyć nowy Rysunek 5. serwer wirtualny. Przykładowo wypełnione pola Zwróćmy uwagę na to, że tak stworzony ser- Rysunek 7. przedstawia rysunek 4. wer wirtualny możemy modyfikować, klikając po To tyle w tej części, która kończy serię artyku- prostu w jego pozycje na liście. łów dotyczących konfiguracji serwera WWW z wy- korzystaniem programu Webmin.

numer 19 – 2008 32 Software LightZone – kombajn dla fotografa? Michaª Rzepka Fotografowanie zawsze było popularnym hobby, a z roku na rok jego popularność rośnie. Codziennie wykonywana jest niezli- czona ilość zdjęć, z których wiele aspiruje do miana artystycznych. Jak więc wyróżnić się w tak wielkim tłumie, uczynić swoje zdjęcia zauważalnymi? Oczywiście, w takich przypadkach niezbędna jest edycja w „cyfrowej ciem- ni”, jaką stanowią w dzisiejszych czasach programy jak Photoshop, Gimp, czy – omawiany już w Dragonii – komercyjny program Pixel. Ale nie wszyscy fo- tografowie czują się pewnie wobec nieskończenie wielkich możliwości edycji, jakie oferuje technika cyfrowa; obchodzi ich efekt, a nie zaś wielogodzinna nauka posługiwania się którymś z w/w pakietów. Alternatywą dla wielu stają się wówczas proste w użyciu przeglądarki zdjęć, wzbogacone o kilka (czasem kilkaset, zależnie od dostępnych wtyczek) podstawowych funkcji i efektów. Program LightZone firmy Lightcrafts wydaje się być hybrydą obu podejść, opa- kowaną w atrakcyjny interfejs użytkownika i niestety płatną. Za pełną wersję programu należy zapłacić aż 245 dolarów, zaś za wersję „Basic” już „tylko” 150. Ta ostatnia pozbawiona jest możliwości edycji wielu plików naraz i przetwarzania wsadowego. My jednak przyjrzymy się darmowej wersji 30-dniowej, dostępnej za darmo dla Windowsa, Linuksa i Mac-a. Rzut okiem na program Oprogramowanie po rozpakowaniu zajmuje jakieś 100 megabajtów, a stwo- Rysunek 1. Takim ekranem wita nas program LightZone. Tryb przeglądania katalogów. rzone zostało w Javie. W związku z tym, rekomendowane minimalne wymaga- nia sprzętowe to od 1 do 2 GB pamięci operacyjnej. Wygląda na to, że producent nie przesadza, gdyż już po kilkunastu minutach pracy z programem zarezer- Rzut okiem na możliwości wował sobie on ponad połowę z dostępnego w systemie gigabajta pamięci. Program działa w dwóch trybach – przedstawionym na Rysunku 1. trybie Mimo to, interfejs nie wydaje się ociężały, program działa akceptowalnie szyb- przeglądania, oferującym szybkie przejście do trybu edycji. Przeglądarka jest ko (testowane na jednordzeniowym Athlonie 64 3800+). Aplikacja nie wymaga o tyle ciekawa, że pokazuje miniaturki bardzo wielu formatów, w tym RAW. instalacji, wystarczy rozpakować archiwum. Program jest spolszczony, ale tylko Można więc szybko podejrzeć różnicę między zdjęciem w JPEG, a surowym w drobnym stopniu – większość komunikatów jest nadal w języku angielskim. RAW-em. Rozmiar miniaturek można zmieniać suwakiem, z prawej zaś strony W interfejsie dominuje czerń i ciemne odcienie szarości, co ułatwia edycje zdjęć znajduje się okienko z danymi pliku, w tym szczegóły EXIF – jak czas naświetla- (jak wiadomo, ciemnie zdjęcia na jasnym tle wyświetlane są z przekłamania- nia, czułość, godzina, model aparatu. Możliwe jest obrócenie zdjęcia o 90 stopni mi na niektórych monitorach). Rysunek 1. przedstawia widok programu po (co akurat u mnie nie chciało zadziałać) i szybkie wykonanie jakiejś operacji uruchomieniu. (jak wyostrzanie, konwersja na skalę szarości) na wielu obrazkach naraz, bez konieczności otwierania któregokolwiek do edycji.

numer 19 – 2008 33 Software

LightZone edytuje w sposób bezpieczny; wszelkie zmiany są domyślnie zapi- twierdzą, że ich program umie tworzyć obraz HDR tylko z jednego zdjęcia. sywane w pliku o innej nazwie, zaś wszystkie przekształcenia wykonywane są Wystarczy spojrzeć na Rysunek 3., aby przekonać się, czy faktycznie można w 16-bitowym zasięgu dynamicznym. Efektów można nałożyć dowolną ilość, osiągnąć taki sam efekt, jak przy użyciu wielu ujęć. ponadto można powiązać jakiś efekt tylko z określonym obszarem obrazka, Kolejnym narzędziem, z którego często korzystam, a które można znaleźć w Li- nie ograniczając się do korekcji globalnych. Dodatkowo, każdy z efektów jest ghtZone, to maska wyostrzająca. Jak nazwa wskazuje, służy do wyostrzania, ale konfigurowalny, udostępniając kontrolę krycia, intensywności, itp. – zależnie pozwala zdecydować, jak wielkie obszary chcemy wzmocnić – od drobniutkich od zastosowanego przekształcenia. detali, jak pajęczyny, po zwiększenie kontrastu pomiędzy linią drzew, a niebem. Przekształceń czy „styli” – jak to wolą producenci – jest kilkadziesiąt: od tono- W Lightzone, narzędzie to oferuje większą wartość promienia (a więc rozmiar wania kolorów, wyostrzania, wzmacniania kontrastu lokalnego, symulacji fo- wyostrzanych plam) niż w Adobe Photoshop. Ten ostatni oferuje zasięg do 250 tografii czarno-białej z zastosowaniem filtrów (czerwony, pomarańczowy, żół- pikseli, LightZone zaś do 500. Poza tym, narzędzie działa analogicznie. Wie- ty. . . ), po efekty przypominające fotografię HDR (o podwyższonym zasięgu le narzędzi LightZone ma bardzo dobre ustawienia domyślne, dająć ciekawe dynamicznym). Każde kliknięcie na nazwę efektu powoduje umieszczenie jego efekty bez dodatkowej konfiguracji. konfiguracji z prawej strony, zaś przytrzymanie guzika podpisanego ’Orig’ po- zwala szybko podejrzeć oryginalne zdjęcie, bez konieczności wyłączania efek- Podsumowanie tów. Można też skorzystać z historii, gdyż program zapamiętuje każdy wyko- LightZone jest bardzo ciekawym i użytecznym programem, doskonale prze- nany krok. myślanym i rozwiązującym wiele problemów, z jakimi styka się często amator fotografii. Jest na tyle prosty w obsłudze, że nie wymaga tak długiego okresu nauki jak jego więksi kuzyni, a jednocześnie oferuje wiele spośród ich funkcji w przystępny sposób. Pewnym minusem jest też mechanizm zaznaczania ob- szarów, przynajmniej w testowanej przeze mnie wersji. Dawał on bowiem do dyspozycji jedynie obrysowywanie obszarów prostymi odcinkami i łukowa- tymi, uniemożliwiając precyzyjne zaznaczanie – jak w przypadku różdżki czy lasso u konkurencji. Nie sądzę więc, aby program nadawał się do precyzyjnych fotomontaży, ale nie o to tu chodzi. Autorzy chcą, aby ich program pozwa- lał fotografowi skupić się na efekcie jaki chce osiągnąć, a nie drodze do jego osiągnięcia. Inną wadą jest ilość pamięci, jaka konieczna jest do w pełni kom- fortowej pracy z programem, oraz cena (nieco większa niż zero złotych!). Dla kogoś, kto zajmuje się fotografią zawodowo, ale potrzebuje programu graficz- nego tylko do wykonania typowych, powtarzalnych korekt – redukcji szumu, zwiększenie ostrości – LightZone jest dobrą alternatywą. Po co bowiem płacić za cały pakiet oprogramowania, jeśli wykorzystuje się tylko kilka jego funkcji? Problem jednak w tym, że to, co w tym scenariuszu bardzo wygodne – czyli możliwość przetwarzania wsadowego – kosztuje 100 dolarów więcej. Pomimo Rysunek 2. Z ekranu przeglądania można szybko przejść do trybu przekształcania jednak, iż nie jest to aplikacja otwarta, nic nie stoi na przeszkodzie, aby ściągnąć zdjęć. wersję próbną i sprawdzić czy LightZone jest dla Ciebie wart swojej ceny. Przegląd ciekawszych narzędzi Normalnie, zdjęcie HDR zwykle generuje się na podstawie kilku ujęć o róż- nej ekspozycji – jedno (część) z nich niedoświetlone, jedno prześwietlone. Dzię- ki temu, tak ciemne, jak i jasne obszary są czytelne. Producenci LightZone

numer 19 – 2008 34 Software

Odnośniki [1] http://www.lightcrafts.com/products/index.html – strona domowa aplikacji [2] http://www.lightcrafts.com/products/videos/index.html – filmiki pokazujące niektóre możliwości programu

Rysunek 3. U góry obraz HDR wykonany na podstawie kilku ujęć w Adobe Photoshop, poniżej efekt HDR z LightZone, zastosowany na zdjęciu wykonanym w złych warunkach oświetleniowych. LightZone zaprezentował całkiem niezły rezultat, ale w zacienionych obszarach pojawił się szum, ponadto nie udało się wyświetlić wszystkich detali firanki, co było możliwe w przypadku wielokrotnej ekspozycji. Utrata ostrości na zdjęciu u góry jest rezultatem poruszenia aparatu pomiędzy naświetlaniami.

numer 19 – 2008 35 Software GIMP – retusz zdjęć – część 1 Łukasz Ciesielski

Tekst ten rozpoczyna serię artykułów wyodrębniać część wspólną dla pierwotnego za- Odbija warstwę lub zaznaczenie. o tworzeniu grafiki w programie GIMP, znaczenia. która przede wszystkim będzie poświęco- Tzw. lasso, czyli odręczne zaznaczanie obszaru. Dodawanie tekstu. Bardzo przydatna funkcja. na obróbce zdjęć. Niniejszy tekst wskaże Umożliwia także dodawanie, odejmowanie i selek- Umożliwia przede wszystkim podpisywanie zdjęć. podstawowe narzędzia dostępne w pro- cjonowanie części wspólnej. Tzw. beczułka. Służy do wypełniania kolorem gramie. Autor postanowił rozpocząć od te- Tzw. różdżka - zaznacza sąsiadujące ze sobą lub określonym deseniem. Niezwykle przydatna go, ponieważ nie każdy ma dostęp do pro- obszary. Bardzo przydatne narzędzie w przypad- funkcja podczas korekty zdjęć. gramu GIMP z polskim menu. W dalszej ku retuszowania zdjęć. Wypełnianie gradientem. Jest wręcz niezastą- części artykułu, nauczymy się jak najpro- Zaznacza obszary według kolorów. pione kiedy np. pracujemy nad niebem na zdję- ściej (nie jest to jedyna metoda) usunąć ciach. „zbędny” element ze zdjęcia. Dowiemy się Zaznaczenie kształtów na obrazie. W praktyce Ołówek. także jak zrobić rozmywającą się ramkę wygląda to tak, że wskazujemy kilka lub kilkana- ście punktów, a narzędzie łączy je ze sobą i zazna- Pędzel. Często go używam, jednak, mimo wokół zdjęcia oraz jak „poprawiać natu- wszystko, rzadziej niż ołówka. rę”. cza pożądany przez nas fragment obrazu. Tworzy i modyfikuje ścieżki. Gumka. W przypadku zdjęć raczej nieużywa- Narzędzia na. Na początku, warto zwrócić uwagę na dostępne Pipetka służy do pobierania koloru, a konkret- Aerograf. W niektórych wypadkach może po- narzędzia. GIMP jest w nie solidnie zaopatrzony, niej jego numeru. służyć do urzeczywistniania wyglądu obrazka, np. zacznijmy więc od podstaw. Lupa - standardowo jest włączone powiększa- tonowania dwóch odcieni danego koloru. Zaznaczenie prostokątne. Kiedy przytrzyma- nie obrazu, jednak po przyciśnięciu [Ctrl] lupka Rysowanie stalówką. Nieużywane. my przycisk [Ctrl] będziemy mogli odjąć część bie- oddali obraz. Tzw. stempel. Bardzo praktyczne narzędzie, żącego zaznaczenia. Narzędzie daje więc możli- Kątomierz. Przy obróbce zdjęć raczej nieuży- które służy do malowania przy użyciu deseni lub wość stworzenia zaznaczenia o nietypowych, lecz wany przyrząd. fragmentów obrazu. geometrycznych kształtach. Przykładowo można Przesuwa warstwy i zaznaczenia. stworzyć zaznaczenie w kształcie litery „C”. Przy- Rozmywanie lub wyostrzanie obrazu. Bardzo trzymując klawisz [Shift] możemy do bieżącego Tzw. skalpel. Służy do kadrowania oraz zmie- często wykorzystywane do rozmywania krawędzi zaznaczenia dodać kolejne. Dzięki temu możliwe niania wymiarów obrazu. Bardzo przydatne narzę- przedmiotów na zdjęciach, przez co wyglądają one jest stworzenie zaznaczenia w kształcie czworokąta dzie. bardziej realistycznie. z wyciętym środkiem. Istnieje również kombinacja Obraca warstwy lub zaznaczenia. Narzędzie do rozsmarowywania obrazu. klawiszy [Shift]+[Ctrl], która umożliwia wyselek- cjonowanie części wspólnej zaznaczenia. Skaluje warstwy lub zaznaczenia. Rozjaśnia lub wypala pociągnięcia. Może słu- żyć podobnie jak aerograf. Zaznaczenie owalne. Analogicznie za po- Nachylenie zaznaczenia pod określonym ką- mocą kombinacji klawiszy [Shift], [Ctrl] oraz tem. [Shift]+[Ctrl] można dodawać, odejmować bądź Zmienia perspektywę widzenia obrazu. Można zrobić efekt oddalenia lub zbliżenia obrazu.

numer 19 – 2008 36 Software Usuwamy zbędne elementy z ob- razu Wyobraźmy sobie sytuację, że po wielogodzin- nym oczekiwaniu na odpowiedni moment udało nam się wreszcie zrobić cudowne zdjęcie. Jest tylko mały problem. Na zdjęciu znalazł się obiekt, któ- rego nie powinno tam być. Zajmijmy się korektą. Mamy już obraz.

Wróćmy do pracy. Kolejnym krokiem jest nad- Teraz używając narzędzia do rozmywania i wy- budowa chodnika. Robimy to takim samym sposo- gładzania – – kończymy nasze dzieło. A oto bem jak wcześniej. efekt:

Zrobiliśmy zdjęcie domu, jednak przeszkadza nam samochód zaparkowany przed nim. Usuń- my go zatem. Będziemy używać do tego przede wszystkim narzędzia, które umożliwi nam zazna- czanie fragmentów obrazu o nieregularnych kształ- tach, czyli . Najpierw zajmiemy się rekonstrukcją drogi. Wycinamy fragment przed samochodem i wkleja- my, ustawiając go w odpowiednim miejscu. Teraz A co z ogrodzeniem domu? Nie stanowi ono pro- powinno stać się jasne, dlaczego użyliśmy akurat blemu, gdyż narzędzie, którym się posługujemy, tego narzędzia. Chociażby z tego powodu, że jezd- dopasowuje sobie kształt zaznaczenia. nia jest pochyła, więc zaznaczenie prostokątne nie wchodziło w grę.

numer 19 – 2008 37 Software

Rozmywające się obramowanie Jednocześnie, naszym oczom, w miejscu ory- Teraz tylko podłóżmy zdjęcie i gotowe. Ostatni ginalnego obrazka, ukaże się białe tło z naszym raz klikamy na naszą warstwę w oknie z warstwa- zdjęcia zaznaczeniem, które możemy dowolnie kolorować. mi po czym z menu wyłączamy Wyświetl maski Rozpocznijmy od otworzenia zdjęcia. Aby nie Tło poza zaznaczeniem „zalejmy” czarnym kolo- warstwy. Gotowe! zniszczyć oryginału, w oknie Warstwy, Kanały, rem, natomiast wnętrze zaznaczenia pozostawmy Ścieżki tworzymy kopię zapasową warstwy (kli- białe. Aby tego dokonać, należy wybrać z me- kamy prawym i wybieramy Duplikuj warstwę). Bę- nu Zaznaczenia . Odwróć. Teraz wypełniamy pole dziemy pracować na kopii, więc oryginał możemy czarnym kolorem. Aby zlikwidować zaznaczenie, spokojnie usunąć z okna warstw. klikamy [Ctrl]+[Shift]+[A].

Istnieje jeszcze jeden sposób na osiągnię- cie tego samego efektu. Wydaje mi się jed- nak, że przedstawiony powyżej jest efektowniej- Następnym krokiem jest zaznaczenie pożąda- szy i. . . ładniejszy. Można mianowicie posłużyć się nego obszaru. gotowym skryptem z menu w głównym oknie Script-Fu . Zaznaczenie . Wypłowiała otoczka. Nie Połowa pracy już za nami. Teraz stwórzmy idźmy jednak „na łatwiznę”, bo nie będziemy mieli rozmycie. Z menu wybieramy Filtry . Rozmycie . satysfakcji z tego, co robimy. Rozmycie Gaussa. W opcjach ustawiamy odpo- wiadający nam stopień rozmycia i akceptujemy „Naprawiamy” pochmurne niebo OK. Jeśli ktoś zajmuje się fotografią, to doskonale wie o czym mowa. Są sytuacje, kiedy mamy oka- Powracamy do okna, w którym wyświetlane zję zrobić doskonałe zdjęcie. Niestety pogoda płata są warstwy. Ponownie klikamy na naszą warstwę figla i błękitne niebo zamienia w jasne, które nie i z menu wybieramy Dodaj maskę warstwy. Powin- wygląda zbyt atrakcyjne na zdjęciu. Oto typowy no ukazać się okno, z którego wybieramy Biała przykład: (bez przezroczystości), jeżeli nie będzie nam ona potrzebna. Zatwierdzamy przyciskiem OK. Jeżeli nie wystąpiły problemy (a nie powinny na tym eta- pie), to obok miniaturki naszej warstwy powinno ukazać się białe okienko.

Oto efekt i cel naszej pracy: rozmyta obwódka. Teraz klikamy prawym klawiszem myszy na „białym okienku” i w menu odhaczamy Wyświetl maski warstwy tak, żeby miniaturka podświetliła się na zielono.

numer 19 – 2008 38 Software

Jest to dosyć prosty zabieg. Na początku musi- W celach czysto „kosmetycznych” można nie- my zaznaczyć niebo. Za pomocą „magicznej różdż- które miejsca wygładzić – . ki” – – separujemy ziemię od nieba. Teraz z menu Zaznaczenie wybieramy Odwróć. Następ- Sepia nie wycinamy zaznaczenie – [Ctrl]+[X]. Tworzymy Chyba nikt nie zaprzeczy, że stare fotografie nowy obrazek – [Ctrl]+[N]. Wklejamy to, co wycię- mają w sobie to „coś”. Ten magiczny czar, którym liśmy wcześniej – [Ctrl]+[V]. Wracamy do poprzed- przyciągają naszą uwagę. Myślę, że warto nauczyć niego płótna. Korzystając z narzędzia do tworzenia się jak za pomocą Gimpa stworzyć takie małe ar- gradientu – – robimy nasze pogodne, błękitne cydzieło. niebo. Zacznę od tego, że są dwie metody: — można posłużyć się gotowym skryptem Script-Fu . Ozdobienia . Stara fotografia, — lub zrobić to „manualnie” i ten właśnie sposób polecam, ponieważ daje więcej radości z otrzy- manych efektów. Gotowego skryptu nie będę omawiał, ponieważ jest on bardzo prosty, jeżeli chodzi o ustawienia. Zajmijmy się robieniem sepii od podstaw. Nie jest to zabieg zbyt skomplikowany. Otwieramy nasze zdjęcie. Teraz wybieramy z menu pozycję Narzę- Mamy już wszystko czego potrzebujemy. Wy- dzia . Narzędzia kolorów . Barwienie. starczy na płótno z gradientem wkleić nasz ląd. Dlaczego kazałem go skopiować do nowego okna? Tak na wszelki wypadek. „Przezorny zawsze ubez- pieczony” – jak głosi przysłowie.

Koniec części pierwszej. Zapraszam do lektury kolejnej części w następnym numerze.

Tam mamy możliwość balansowania stopniem nasycenia, odcieniem oraz jasnością. Ustawiając odpowiednie wartości (np. Odcień: 45, Nasycenie: 70, Jasność: 25) stworzymy pożądany efekt.

numer 19 – 2008 39 Programowanie Bash – cześć 6 Rafaª Topolnicki

Dzisiejsze spotkanie będzie łatwe i przyjemne. Takie przynaj- dialog --title {tytuł} \ mniej mam postanowienie. W poprzednich częściach kursu, wiele --backtitle {tytuł w tle} \ uwagi poświęciliśmy na komunikację z użytkownikiem – obsługę --typ {opcje} opcji, tworzenie menu czy wczytywanie informacji z klawiatury. Jako typ mamy do wyboru: Jednak bash potrafi wyglądać ciut nowocześniej. –infobox {tekst} {wysokość} {szerokość} Tak, jak w przytoczonym przykła- Prawdę mówiąc, nie jest to zasługa basha, lecz pakietu dialog. Na początku dzie, służy on do wyświetlania krótkich komunikatów, na które nie ocze- należy sprawdzić, czy jest on zainstalowany w naszym systemie, jeżeli nie, na- kujemy reakcji użytkownika. leży go sobie jak najszybciej przysposobić ;). Tworzymy skrypt komunikat.sh –msgbox {tekst} {wysokość} {szerokość} Trochę wyższa technika. Oprócz wy- o następującej treści: świetlenia komunikatu, oczekujemy na potwierdzenie użytkownika. Mało #!/bin/bash tego, gdy tekst jest długi, do dyspozycji mamy „przewijarkę”, którą steru- dialog --title "Witaj!" \ jemy za pomocą klawiszy [Up] i [Down]. Oczywiście, wysokość i szerokość --backtitle "Kurs basha - Dragonia" \ okienka należy dostosować do długości wyświetlanego tekstu. --infobox "Oto kolejna część kursu basha. Nareszcie pojawią się jakieś obrazki." \ 6 35 a następnie uruchamiamy.

–yesno {tekst} {wysokość} {szerokość} Jak sama nazwa wskazuje, za pomocą tego okienka pozwalamy użytkownikowi podjąć decyzję – Tak, lub Nie.

Przeanalizujmy następujący skrypt: Jak widać, efekt jest całkiem przyzwoity. Liczby 6 i 35 to – odpowiednio – od- dialog --title "Ostrzeżenie" \ wrotnie, niż nakazuje logika, wysokość i szerokość okienka wyrażona w wier- --backtitle "Kurs basha" --yesno \ szach. Składnia polecenia dialog jest następująca: "Czy na pewno chcesz nadpisać pliki: /etc/fstab \n /etc/lilo.conf " 8 40

numer 19 – 2008 40 Programowanie

odp=$? ku tymczasowego /tmp/kursbasha.$pid. Podobnie, jak w poprzednim case $odp in przykładzie, zmienna odp informację, który przycisk został wybrany (mię- 0) echo "Nadpisano";; dzy przyciskami możemy przełączać się za pomocą tabulatora). Warto po- 1) echo "Nie nadpisano";; wiedzieć więcej o tworzonym pliku tymczasowym. Jego nazwą będzie ciąg 255) echo "Wciśnięto ESC. Anulowano";; znaków - kursbasha kropka i PID skryptu (który przechowuje zmienna esac pid), czyli, przykładowo: kursbasha.2773. Plik zostanie utworzony w ka- \n Użycie w treści komunikatu wymusza przełamanie wiesza w danym talogu /tmp, do którego każdy użytkownik ma dostęp. Katalog ten został miejscu – w ten sposób powstała schludna lista plików. Odpowiedź użyt- utworzony właśnie w tym celu, aby wszelkiej maści pliki tymczasowe znaj- kownika przechowuje zmienna $? (kod wyjścia ostatniego wykonanego dowały się w jednym miejscu i nie zaśmiecały systemu. W razie potrzeby, programu – czyli programu dialog), której wartość, aby uniknąć jej nadpi- bardzo prosto możemy je wszystkie usunąć. U mnie, katalog /tmp zajmuje odp sania, zapisujemy do zmiennej . Następnie, za pomocą konstrukcji „ca- przeszło 550MB. To sporo, biorąc pod uwagę, że najprawdopodobniej nie se”, sprawdzamy jej wartość i podejmujemy odpowiednie działania. Mam znajduje się w nim nic ważnego. Użycie PIDu procesu ma na celu mini- nadzieję, że przytoczony przykład mówi sam za siebie. Wartość 255, przy- malizację prawdopodobieństwa nadpisania już istniejącego pliku. Filozofia pisana klawiszowi [Esc], będzie przewijać się we wszystkich kolejnych przy- ta bazuje na słusznym założeniu, że w danej chwili w systemie działa tyl- kładach, chociaż nie zawsze będzie to wyraźnie zaznaczone. ko jeden proces o danym identyfikatorze. Skrypt powinien posprzątać po –inputbox {tekst} {wysokość} {szerokość} Inputboksa używany za każdym ra- sobie, czyli usunąć wszystkie utworzone i niepotrzebne pliki, co realizuje zem, gdy chcemy pobrać od użytkownika jakieś krótkie dane. Dialog skie- ostatnia linijka. Warto zaznaczyć, że dobrym ćwiczeniem, sprawdzającym ruje podaną odpowiedź na stderr, a my będziemy w stanie ją przechwycić wiadomości z ostatniej lekcji, jest zmodernizowanie skryptu w taki sposób, i wykorzystać w naszym skrypcie. aby w przypadku naciśnięcia przez użytkownika klawiszy [Control]+[C] skrypt usunął wszystkie utworzone przez siebie pliki. –textbox {plik} {wysokość} {szerokość} Tego okienka dialogowego można uży- wać jako prostej przeglądarki plików tekstowych. Użytkownik może prze- wijać tekst za pomocą klawiszy [Up], [Down], [PgDn], [PgUp], a gdy linie są za długie, przesuwać je za pomocą [Left], [Right], [Home], [End]. Praw- dziwym hitem jest jednak wyszukiwanie w otwartym pliku tekstowym, dostępne po naciśnięciu kombinacji [Shift]+[/] ;)

pid=$$ dialog --inputbox "Podaj wiek" 8 40 \ 2>/tmp/kursbasha.$pid odp=$? wiek=‘cat /tmp/kursbasha.$pid‘ case $odp in 0) echo "Masz $wiek lat" ;; 1) echo "Anulowano" ;; 255) echo "Anulowano [ESC]";; esac rm -f /tmp/kursbasha.$pid Szczęśliwy użytkownik naszego skryptu, odpowiada na pytanie o wiek. Program dialog domyślnie wyświetla odpowiedź na standardowe wyjście błędów. Jednakże, za pomocą konstrukcji 2> przekierowujemy ją do pli-

numer 19 – 2008 41 Programowanie

dialog --title "Przeglądarka plików" \ tworzony jest również (pusty) plik tymczasowy. Obsługę tego zdarzenia --textbox "/etc/X11/xorg.conf" 20 75 równie dobrze można umieścić w konstrukcji case, co może byłoby bardziej –menu {tekst} {wysokość} {szerokość} {wysokość menu} {element1 opis} {ele- estetyczne. W wypadku menu, pierwsza litera nazwy elementu, wyświetla- ment2 opis} Nazwa mówi sama za siebie. Okienko to może być używane na czerwoną czcionką, jest zarazem skrótem klawiszowym, odwołującym do prezentowania menu, z którego użytkownik wybiera jedną z możliwych się do danego elementu. Podobnie będzie w następnych „kontrolkach”. –checklist {tekst} {wysokość} {szerokość} {wysokość listy} {element1 opis opcji. Po wybraniu przez użytkownika opcji, program dialog kończy działa- status} {element2 . . . } nie, zwracając jej nazwę na standardowe wyjście błędów, które my przekie- Użycie „checklist” powoduje wyświetlenie okienka wielokrotnego wyboru – możemy zaznaczyć dowolną ilość spośród dostęp- rowujemy do pliku tymczasowego, do którego z kolei mamy dostęp ilekroć będzie to potrzebne. Sposób obsługi tego okienka nie różni się więc znaczą- nych. Status określa, które opcje mają być domyślnie włączone (on), a które co od obsługi infoboksa. Ponieważ wybór użytkownika jest identyfikowalny wyłączone (off, lub cokolwiek innego). Wynikiem działania jest zwrócenie poprzez nazwę elementu, nazwy nie mogą się powtarzać. na stderr listy nazw wszystkich wybranych elementów. dialog --title "Wybor" --checklist "Wybierz elementy" \ 10 50 4 opcja1 "Opcja 1" off opcja2 "Opcja 2" on \ opcja3 "Opcja 3" off 2>/tmp/wynik.txt –radiolist Działa bardzo podobnie do checklist, z tym, że pozwala na wybra- nie tylko jednej spośród dostępnych opcji. Opcję, która ma być zaznaczona domyślnie, wybieramy ustawiając jej status na „on”. –fselect {tekst} {ścieżka} {wysokość} {szerokość} Okienko, pozwalające na przeglądanie zawartości katalogów oraz na wybór plików. Podstawowym mankamentem jest dość nieintuicyjna obsługa, która może przysporzyć wielu problemów, zwłaszcza początkującym. Wynikiem działania fselect jest ścieżka do wybranego pliku (łączenie z jego nazwą), która tak, jak Najlepiej uczyć się na przykładach, więc napiszmy skrypt: w przypadku wszystkich pozostałych okienek, domyślnie zostaje zwrócona pid=$$ na stderr. dialog --title "Dokonaj wyboru" --menu "Co chcesz zrobic" \ 10 50 3 Zapisz "Zapisz plik" Otworz "Otwórz nowy plik" \ Zakoncz "Zakończ działanie skryptu" \ 2>/tmp/kursbasha.$pid opt=$? if [$opt -eq 255 ]; then #(1) echo "Wybrano ESC" rm -f /tmp/kursbasha.$pid exit 0 fi wybor=‘cat /tmp/kursbasha.$pid‘ case $wybor in Zapisz) echo "Wybrano Zapisz";; Otworz) echo "Wybrano Otworz";; Zakoncz) echo "Bye Bye" ;; esac rm -f /tmp/kursbasha.$pid Mam nadzieję, że zasada działania jest zrozumiała. Dodatkowo, pokusili- śmy się o obsługę klawisza [Esc]. O dziwo, w przypadku jego naciśnięcia,

numer 19 – 2008 42 Programowanie

Prześledźmy fragment skryptu: odp=$? ... case $odp in sciezka="/proc/" 0) echo "Masz $wiek lat" ;; dialog --title "Wybierz plik" \ 1) echo "Anulowano" ;; --fselect $sciezka 13 48 2>/tmp/kursbasha.$$ 255) echo "Anulowano [ESC]" ;; ... esac Efekt działania powinien być zbliżony do zaprezentowanego na rysunku. Dodanie parametru –stdout nakazuje zwrócenie wyniku na standardowe wyj- Po uruchomieniu, ujrzymy zawartość katalogu /proc, gdyż taką wartość ście, zamiast na stderr. Analogicznie można postąpić wszędzie tam, gdzie two- miała zmienna ścieżka. Na końcu należało dodać jeszcze ukośnik, co zosta- rzyliśmy pliki tymczasowe. nie wyjaśnione później. Jak tego używać? Za pomocą klawiszy [Up] [Down] Ponieważ skrypt powinien być odporny na czynnik ludzki, warto zabez- [Tab] przełączamy się pomiędzy kolumnami, linijką adresu oraz klawiszami. pieczyć się przed zbyt małymi rozmiarami terminala. Parametrem każdego Lewa kolumna zawiera spis katalogów, zagnieżdżonych w obecnie przeglą- z okienek jest jego wysokość i szerokość. Należy więc sprawdzić, czy najwięk- danym (w naszym wypadku /proc/), prawa natomiast spis plików. Spacją sze z wyświetlanych podczas pracy skryptu okienek zmieści się w terminalu. zatwierdzamy wybór pliku lub katalogu, jego nazwa zostanie dopisana do adresu. Jeśli chcemy przejść do innego katalogu i wylistować jego zawartość, dialog --print-maxsize należy zmienić wpis w linii adresu, lub zatwierdzić wybór katalogu spa- zwraca dostępną liczbę kolumn i wierszy, większość terminali w środowisku cją, a następnie w adresie dopisać „/”. Wciśnięcie klawisza [Enter] w któ- graficznym domyślnie ma 24 kolumny i 80 wierszy. rymkolwiek momencie spowoduje zakończenie działania programu dialog Standardowo, okna dialogowe są centrowane na ekranie, po –begin może- oraz zwrócenie ścieżki z linii adresu, która może mieć niewiele wspólnego my wskazać, gdzie ma zaczynać się okienko. Przykładowo, dodanie –begin 1 z wybranym (podświetlonym) plikiem. Obsługę należy więc potrenować, 1 spowoduje wyświetlenie danego okna w lewym górnym rogu ekranu. a w wypadku, gdy skrypt ma być obsługiwany przez osoby trzecie, dodać Mamy do dyspozycji jeszcze kilka innych okienek, które w niektórych przy- odpowiedni opis używania. padkach mogą okazać się pomocne: passwordbox do wczytywania haseł, ti- –calendar {tekst} {wysokość} {szerokość} {dzień} {miesiąc} {rok} mebox do wczytywania daty, guage – pasek postępu. Po więcej szczegółów data=$(dialog --title "Ustaw zegar" \ --stdout --calendar "Podaj czas" 0 0 12 5 2008) odsyłam do dobrze napisanej dokumentacji [1]. echo $data Użycie programu dialog urozmaica skrypt, nie należy jednak przesadzać Takie dwie linijki skryptu spowodują, że ujrzymy na ekranie schludny ka- z jego stosowaniem. Dialog działa wolno i zapewnia bardzo niskie odświe- lendarz, pozwalający na wybór dnia. Domyślnie zaznaczony będzie 12 maja żanie, szczególnie w wypadku dużych rozdzielczości. W wielu wypadkach 2008. Podanie dwóch zer zamiast – jawnie – wysokości i szerokości okien- jego użycie może przysporzyć użytkownikowi więcej problemów, niż korzyści ka, spowoduje automatyczny dobór tych parametrów. Sens konstrukcji da- (patrz fselect). ta=$(. . . ) oraz parametru –stdout zostanie wyjaśniony później, ale już teraz można chyba się domyślić, co on oznacza. Odpowiedź użytkownika Odnośniki Wróćmy do przykładu z wiekiem, czyli do opisu inputbox. Tam, po raz [1] http://linux.die.net/man/1/dialog – dokumentacja dialog pierwszy, spotkaliśmy się z obsługą odpowiedzi użytkownika. Do odczytania [2] http://linuxgazette.net/101/sunil.html tej odpowiedzi korzystaliśmy z pliku tymczasowego. Istnieje jednak prostsza, [3] http://www.fifi.org/doc/dialog/examples/ – przykładowe skrypty lecz mniej uniwersalna metoda. Umiejętne użycie konstrukcji $() oraz dodanie opcji –stdout umożliwia przypisanie odpowiedzi wprost do zmiennej. W przy- toczonym przypadku inputboksa, zadziała również: wiek=$(dialog --stdout --title "Dane użytkownika" \ --inputbox "Podaj wiek" 8 30)

numer 19 – 2008 43 Programowanie Konsola – dlaczego warto ją poznać? Łukasz Ciesielski

W czasach, w których „rządzą” okienka, mało kto próbuje za- cat /proc/cpuinfo | grep cache poznać się z poleceniami stosowanymi w konsoli. Poniższy arty- flagi: kuł poruszy problem pozyskiwania informacji o komputerze, jego podzespołach oraz zarządzanie plikami i procesami. Być może za- cat /proc/cpuinfo | grep flags stanawiacie się, po co i komu to potrzebne. Może się jednak zda- numer rodziny procesora: rzyć, że znajdziemy się w sytuacji awaryjnej i będziemy zmuszeni cat /proc/cpuinfo | grep family pozyskać takie informacje. Co będzie jeżeli okaże się, że ich nie znamy? Pojawi się problem. Zajmijmy się więc jego rozwiązaniem, póki jeszcze nie wystąpił. Pamięć Za pomocą jednej komendy możemy również uzyskać wszystkie informacje Informacje o procesorze (CPU) dotyczące pamięci: Informacje pozyskamy dzięki komendzie cat /proc/meminfo cat /proc/cpuinfo Naszym oczom ukaże się jednak mnóstwo danych, które najprawdopodobniej Właściwie wyświetli ona wszystkie interesujące nas informacje. Spróbujmy jed- nie będą nam potrzebne. Załóżmy na przykład, że chcemy się dowiedzieć ile nak przyjrzeć się im bliżej. Rozpocznijmy od sprawdzenia. ile procesorów znaj- KB pamięci RAM ma dany komputer. Wydajemy wtedy polecenie: duje się w komputerze. Aby pozyskać tylko te informacje, które nas interesują cat /proc/meminfo | grep MemTotal będziemy używać polecenia grep. Zobaczmy zatem ile mamy procesorów (ta- blica zaczyna się od zera, czyli jeśli będzie 0 oznacza to 1 procesor). Wydajemy Natomiast komenda: polecenie: cat /proc/meminfo | grep MemFree cat /proc/cpuinfo | grep processor wskażemy ile KB pamięci RAM jest w tym momencie wolne. Podobnie ma Aby pozyskać informację o rzeczywistym taktowaniu procesora, wpisujemy się sytuacja z pamięcią swap. Aby sprawdzić ile KB zajmuje swap wydajemy w konsoli polecenie: cat /proc/meminfo | grep SwapTotal cat /proc/cpuinfo | grep ’cpu MHz’ lub Natomiast dla pozyskania informacji na temat wolnej pamięci wpisujemy: cat /proc/meminfo | grep SwapFree cat /proc/cpuinfo | grep MHz Teraz sprawdźmy jeszcze, jaki model procesora znajduje się w komputerze: Informacje te możemy również pozyskać poleceniem free. Jeśli dodamy para- metr -m, dane zostaną wyświetlone w megabajtach. Plusem tej metody jest to, cat /proc/cpuinfo | grep model że poprzez krótki zapis Czasem nieco szybciej może wykonać się zapis, a dać taki sam efekt: free -m grep model /proc/cpuinfo uzyskujemy kompletne informacje zarówno o pamięci RAM jak i swap. Bardziej zaawansowani mogą także pobrać szereg szczegółowych danych, np.: rozmiar pamięci cache:

numer 19 – 2008 44 Programowanie

Dysk twardy Wyświetli ono nasze procesy w systemie. Lepszym rozwiązaniem jest jednak Informacje o pojemności dysku pozyskujemy dzięki komendzie polecenie df top zaś informacje związane z jego modelem odkrywa polecenie: lub cat /proc/ide/hda top -i W tym drugim przypadku musimy jednak konkretnie sprecyzować o jakie dane Parametr -i oznacza, że program nie będzie wyświetlał tzw. pustych procesów nam chodzi, np. jeżeli chcemy znać model naszego dysku twardego wpisujemy lub procesów zombie. W konsoli ujrzymy jedynie te procesy, które są faktycz- nie wykonywane. Jeżeli będziemy chcieli zabić któryś z procesów, najpierw cat /proc/ide/hda/capacity zapamiętujemy jego numer PID, a następnie za pomocą polecenia Aby dowiedzieć się, jaką pojemność ma dysk, lub ile jest użytego i wolnego kill NUMER_PID miejsca podajemy: kończymy jego działanie. Wspominając o programie top, nie sposób pominąć df -Th program Parametr dodatkowy h zapewni wyświetlenie danych w gigabajtach, co nie htop jest bez znaczenia w przypadku większych dysków, natomiast parametr T wy- świetli systemy plików. Możemy również podać konkretną ścieżkę do dysku, Niestety, musimy go sami doinstalować. W większości dystrybucji powinien np.: już znajdować się w podstawowych repozytoriach. df /dev/hda1 -Th Informacje o urządzeniach Warto też wspomnieć, że oprócz komendy df istnieje także polecenie du. Służy Aby sprawdzić, jakie urządzenia są w ogóle zamontowane w systemie, wy- ono do wyświetlania rozmiarów konkretnych katalogów. Aby sprawdzić, jaki starczy wpisać komendę katalog zajmuje najwięcej miejsca na naszym dysku wydajemy komendę mount du /home/ -S -m | sort -n Z góry zaznaczam, że czasem otrzymane wyniki są trudne do odczytania i trze- Wynik zostanie podany w megabajtach. ba podejść do sprawy z odrobiną cierpliwości, która zawsze się opłaca. Jako przykład, podam zapis mówiący, że jest zamontowany dysk twardy z systemem Informacje o jądrze systemu plików ext3: Jakże ważne dla każdego użytkownika systemu linuksowego. Każdy po- /dev/hda1 on / type ext3 (rw,errors=remount-ro) winien znać wersję jądra, z którego korzysta jego system. Możemy to łatwo sprawdzić, wydając polecenie: Bardzo ważną umiejętnością, która prędzej czy później (ale raczej prędzej) przyda się użytkownikowi Linuksa, jest montowanie napędów CD-ROM oraz uname -a stacji dyskietek. Aby zamontować CD-ROM, wpisujemy w konsoli: Ponadto, uname wskaże z jakiej architektury korzystamy. mount /dev/cdrom /mnt/cdrom Procesy lub Można używać polecenia mount -t iso9660 /dev/cdrom /mnt/cdrom ps Jeśli chcemy zamontować stację dyskietek, używamy polecenia: lub jeżeli ktoś woli mount /dev/floppy /mnt/floppy ps -e Analogicznie, montujemy poszczególne partycje, np.

numer 19 – 2008 45 Programowanie mount /dev/hdc2 /mnt/linux Zarządzanie plikami Jeżeli potrzebujemy informacji na temat producenta lub modelu karty gra- Na samym początku polecenie, które pozwoli nam sprawdzić jakie pliki ficznej, dźwiękowej itp. używamy polecenia: znajdują się w danym katalogu, czyli lspci ls Tutaj sprawa jest prostsza. Przykładowy wpis wygląda tak: lub 00:02.7 Multimedia audio controller: Silicon Integrated Systems ls -a [SiS] AC’97 Sound Controller (rev a0) jeżeli pragniemy zobaczyć także ukryte pliki i katalogi. Aby „przenieść się” do Już na pierwszy rzut oka widać, że chodzi o kartę dźwiękową i że jej produ- innego katalogu, wystarczy użyć polecenia centem jest SiS. Możemy także odczytać, że jest to karta zintegrowana. A jak cd nazwa_ścieżki sprawdzić urządzenia USB? I na to jest rada. Służy do tego komenda Niezbędna jest tu przynajmniej podstawowa znajomość rozmieszczenia po- lsusb szczególnych katalogów systemu, jednak zagadnienie to wykracza poza ramy Jeśli jest podłączony jakiś sprzęt, to zobaczymy kilka informacji z nim związa- tego artykułu. Jeśli potrafimy już dowolnie poruszać się po katalogach oraz nych, np. sprawdzać ich zawartość, warto by pokusić się o tworzenie nowych, lub edycję już istniejących plików czy katalogów. Rozpocznijmy od stworzenia nowego Bus 003 Device 003: ID 090c:1000 Feiya Technology Corp. Memory Bar pliku. Aby tego dokonać, należy wydać komendę Jeżeli natomiast port USB jest nieużywany, to ujrzymy touch ścieżka_dla_nowego_pliku Bus 003 Device 001: ID 0000:0000 touch /home/nazwa_użytkownika/test.txt Oczywiście, plik jest teraz pusty. W tym momencie radzę zainstalować do- Kim jestem? skonały program mc, dzięki któremu będziemy mogli w prosty sposób zarzą- Dokładnie tak. Jak sprawdzić, jakich mamy użytkowników w systemie, lub dzać naszymi dokumentami w trybie tekstowym. Jeżeli jednak nie mamy takiej jako kto jesteśmy zalogowani? Służą do tego dwie komendy: w, who oraz who- możliwości, to dodajmy jakiś tekst do pliku w inny sposób. Posłużymy się już ami. Jako odpowiedź otrzymamy np.: poznaną komendą cat. Najpierw w konsoli wpisujemy: 11:05:15 up 23 min, 2 users, load average: 0,01, 0,03, 0,06 cat > ścieżka_do_pliku USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT i klikamy ENTER. Teraz wpisujemy tekst, który ma się znaleźć w pliku. Kie- lucas :0 - 10:43 ?xdm? 22.91s 0.33s x-session-manag dy skończymy, naciskamy kombinację CTRL+D. Aby sprawdzić, czy tekst na lucas pts/0 :0.0 11:01 0.00s 0.11s 0.00s w pewno się zapisał, wydajemy polecenie: Jak widać na załączonym przykładzie, na analizowanym komputerze jest – cat ścieżka_do_pliku oprócz roota – jeszcze jeden użytkownik, czyli lucas. Ponadto, możemy się dowiedzieć, ile czasu ten użytkownik korzysta ze swojego konta (23 min). Powinien ukazać się nasz tekst. Jeżeli jesteśmy już przy wyświetlaniu zawarto- Oczywiście, do sprawdzenia czasu pracy systemu służy oddzielne polecenie: ści pliku, to warto też wspomnieć o rzadziej używanych poleceniach jak: uptime head ścieżka_do_pliku W odpowiedzi otrzymamy np. oraz 11:13:01 up 31 min, 2 users, load average: 0.02, 0.04, 0.04 tail ścieżka_do_pliku

numer 19 – 2008 46 Programowanie

Pierwsze wyświetli początkowe dziesięć linii tekstu, natomiast drugie ostat- chmod 777 ścieżka_do_pliku nie dziesięć linii tekstu (wartość zmieniamy, dopisując po jako parametr -n Na koniec wspomnę, że istnieje polecenie ). Po użyciu head może się okazać, że potrzebna nam linia tekstu znajduje się trochę niżej. Nie jest to problem. Używamy wówczas: dmesg | less more ścieżka_do_pliku dzięki, któremu możemy wyświetlić komunikaty startowe, czyli te, które były wypisywane (lub nie) podczas ładowania systemu. Jeżeli ktoś chce, może je i klikając na ENTER przesuwamy się niżej. Potrafimy już obsłużyć pliki teksto- zapisać do pliku. we. Stwórzmy więc nowy katalog. Wydajemy komendę: dmesg > jakis_plik.txt mkdir ścieżka_dla_katalogu Teraz nauczymy się kopiować i usuwać pliki oraz katalogi. Na początek, sko- piujmy nasz plik do nowego katalogu. Posłużmy się poleceniem Podsumowanie Mam nadzieję, że podczas czytania tego artykułu czytelnik testował wszyst- cp ścieżka_do_pliku ścieżka_do_katalogu kie nieznane dotychczas polecenia w konsoli. Dzięki temu zestawowi popu- Aby skopiować katalog w inne miejsce, wpisujemy: larnych poleceń, można dowiedzieć się kilku ciekawych informacji o swoim cp -r ścieżka_do_katalogu ścieżka_do_miejsca_docelowego komputerze, sprawdzić procesy, które są uruchomione w systemie. Okazuje się, że i nie używając graficznych narzędzi można tworzyć, modyfikować, od- A może chcesz usunąć plik/katalog? Nie ma problemu. Wystarczy wydać po- czytywać, przenosić oraz usuwać pliki i katalogi. Jeżeli ten artykuł obudził lecenie: w Tobie chęć poznania środowiska konsolowego, to mój cel został osiągnięty. rm ścieżka_do_pliku Jeśli chcesz zagłębić się w możliwości samej powłoki, polecam cykl tekstów o Bashu, publikowany na łamach Dragonii. Nawet jeśli używanie konsoli to aby usunąć plik, lub: dla Ciebie tylko ciekawostka, a nie narzędzie pracy, to i tak właśnie wybiłeś się rm -r ścieżka_do_katalogu ponad przeciętną wiedzę o systemie. żeby usunąć katalog. A co, jeżeli z jakichś powodów plik/katalog nie może zostać usunięty? Być może aktualnie korzysta z niego jakiś proces. Jeśli jednak to nie pomoże, to nie załamujmy rąk. Wpisz w konsoli: rm -rf ścieżka_do_pliku Dodatkowy parametr -f powoduje, że plik/katalog zostanie usunięty „siło- wo”. Zasadniczo, potrafisz już obsługiwać pliki i katalogi, jednak warto też wspomnieć o wyszukiwaniu konkretnych zwrotów oraz o prawach do pli- ku/katalogu. Do przeszukiwania plików służy polecenie grep. Dla wyświe- tlenia konkretnych zwrotów podajemy grep jakiś_zwrot ścieżka_do_pliku Jeżeli natomiast chcemy pominąć jakieś zwroty, wydajemy polecenie grep -v jakiś_zwrot ścieżka_do_pliku Do zarządzania uprawnieniami służy polecenie chmod. Jest to jednak zbyt rozległe zagadnienie, aby rozwijać je w tym artykule. Dla dociekliwych do- dam jedynie, że aby nadać prawa odczytu/zapisu dla wszystkich, podajemy parametry:

numer 19 – 2008 47 Wywiad Wywiad z Jono Baconem z Canonical

Jono Bacon to brytyjski pisarz, dzien- R: Czasami można usłyszeć stwierdzenie, że leźć pod adresem http://ubuntu.pl – odwalają nikarz, twórca oprogramowania, filantrop Ubuntu jest systemem dla ludzi, którzy mają pro- oni kawał dobrej roboty, mówiąć światu o Ubun- i adwokat ruchu Wolnego Oprogramowa- blem ze skonfigurowaniem Debiana. Co sądzisz tu i ulepszająć dystrybucję. To właśnie jest jedna nia. Jest członkiem zespołu KDE; interesu- o takich opiniach? Czy to dobrze, że ludzie nie z moich ulubionych cech Wolnego Oprogramowa- je się też muzyką – stworzył nawet rocko- muszą już znać Linuksa na wylot, aby go używać? nia oraz Ubuntu – że jest to globalna sieć ochotni- wą wersję „Free Software Song”. Człowiek JB: Kiedy po raz pierwszy zobaczyłem Ubuntu, ków, zjednoczonych we wspólnym celu. o wielu pasjach, obecnie także specjalista parę lat temu, wywarł na mnie spore wrażenie, po- R: Co sądzisz o „klonach” Ubuntu? Dystrybu- do spraw społeczności w Canonical. Za- nieważ przypominał mi „Debiana, ale po trzech ty- cjach, które wiele z niego czerpią? praszamy do lektury wywiadu, którego godniach dostrajania”. Uważam jednak, że w dzi- JB: Myślę, że to świetna sprawa – jest już sporo udzielił nam dosłownie parę dni temu. siejszych czasach nie jest to sprawiedliwe stwier- pochodnych Ubuntu, dystrybucji, które zostały za- dzenie, ponieważ Debian również przeszedł wiele Redakcja: Jakie były początki Ubuntu? Było łatwo, inspirowane przez naszą. Mamy masę użytkowni- usprawnień w domyślnej formie, a ponadto Ubun- czy może zupełnie nieobiecująco? ków, wielu spośród których to entuzjaści, zapaleń- tu nie jest już tylko skonfigurowanym Debianem, Jono Bacon: Dołączyłem do projektu nieco ponad cy. A że przy okazji inspirujemy ludzi do tworzenia lecz już raczej samodzielnym organizmem. rok temu; dawniej, przed tym, Ubuntu zaczynało własnych dystrybucji – to tym lepiej. swój żywot jako bardzo mała grupka utalentowa- R: Jaki jest wpływ Canonical na Ubuntu? R: Co sądzisz o Windows Vista? Dla wielu to spo- nych deweloperów, która zebrała się, aby wspól- JB: Canonical jest głównym komercyjnym sponso- re rozczarowanie, dla niektórych wręcz powód do nie stworzyć pierwszą edycję własnej dystrybucji. rem wspierającym projekt. Dostarczamy także ze- podziękowania Windowsom i przejścia na Ubuntu Ich celem było stworzenie distro prostego, łatwego staw usług, takich jak: pomoc techniczna, szkolenia i inne proste w użyciu dystrybucje linuksowe. Ale w użyciu, bazującego na najlepszych cechach De- oraz dostrajanie na zamówienie. Nasz wpływ na jakie jest Twoje stanowisko? biana i środowiska GNOME. Pierwsza edycja wy- Ubuntu polega na zapewnieniu grupy inżynierów, JB: Wykonałem sporo dość dogłębnych testów warła spore wrażenie na wielu ludziach, w tym którzy będą pracować nad dystrybucją oraz za- Windowsa Visty, zarówno w czasach kiedy był na mnie. Od tego czasu, Ubuntu zdołało ulepszyć pewniać ciągłość wyżej wymienionych usług. War- w wersji Beta, jak i potem – w formie ostatecznej. jakość pracy w środowisku desktopowym, a teraz to jednak pamiętać, iż Ubuntu jest samodzielnym Myślę, że nie jest to krok w dobrą stronę dla firmy bierze się także za serwery oraz zastosowania mo- projektem, z własnymi strukturami, wspieranym Microsoft i chociaż faktycznie Vista może pochwa- bilne. przez szeregi ochotników, którzy z firmą Canoni- lić się kilkoma ciekawymi nowinami, to jednak we- cal nie mają poza tym nic wspólnego. Canonical R: Czy wiesz, w jakich krajach Ubuntu cieszy się dług mnie programiści nieco przesadzili i stworzyli jest ważnym filarem Ubuntu, ale nie ma nad nim największą popularnością? produkt, który charakteryzuje się gorszą użytecz- kontroli. JB: Ocena popularności jest niemożliwa, jeśli nością i mniejszą oszczędnością zasobów. Plusem korzysta się wyłącznie ze statystyk, ale Ubuntu R: Społeczność linuksowa – a więc, idąc dalej, tak- Visty jest na pewno to, że podniosła poprzeczkę naprawdę jest fenomenem ogólnoświatowym. Na że użytkownicy Ubuntu, to społeczność międzyna- dla maszyn, co z kolei zainicjowało konieczność przykład, mamy grupy użytkowników zwane ze- rodowa. Nasi czytelnicy są jednak pewnie ciekawi, modernizacji. Ta konieczność zaś sprawiła, że wie- społami LoCo, które zrzeszają wielu entuzjastów co twórcy Ubuntu wiedzą o polskiej społeczności le organizacji zaczęło interesować się alternatywa- Ubuntu. Takich zespołów mamy ponad 160, są Ubuntu. Czy mamy się czym pochwalić? mi – takimi, jak Ubuntu. one rozmieszczone na wszystkich kontynentach JB: Pewnie, że macie! Polska społeczność Ubuntu R: Czy wierzysz w taką prawdopodobność, że i współtworzone przez ludzi z prawie wszystkich jest bardzo liczna i silna, a polski zespół LoCo jest w obliczu rosnącej popularności Linuksa wśród krajów świata. również bardzo aktywny. Ich stronę można zna- użytkowników, wielkie korporacje kalibru Adobe

numer 19 – 2008 48 Wywiad postanowią przenieść swoje flagowe produkty - jak społeczność oraz przejrzysty i otwarty proces wy- wistością, a Ubuntu jest tego doskonałym przykła- Photoshopa - na Linuksa? twórczy sprzyjają zachęcaniu ludzi do współpra- dem. JB: Myślę, że to możliwe. Te organizacje rzadko cy albo przynajmniej dodania swojej małej cegiełki R: Czego możemy Ci życzyć na rok 2008? Szyku- są powiązane z konkretnym twórcą systemu ope- do budynku, jakim jest Ubuntu. W Ubuntu chodzi jecie jakieś niespodzianki dla społeczności na ten racyjnego; ich głównym kryterium jest raczej to czy o entuzjastów robiących to, co lubią, i między inny- rok? ludzie będą produkt kupowali czy też nie. Jeśli mi z tego jestem najbardziej dumny w tym przed- JB: 2008 będzie świetnym rokiem dla Ubuntu wystarczająco dużo osób zacznie używać Linuksa, sięwzięciu. i ogólnie – dla całego ruchu Otwartego Oprogra- komercyjne aplikacje będą musiały być nań prze- R: Ubuntu jest chyba jedynym projektem o tak roz- mowania. Ja po prostu mam nadzieję zobaczyć jak niesione; a czy to dobra, czy zła rzecz – to zależy winiętej polityce na temat wersji; mamy przecież machina Wolnego Oprogramowania rozkręca się od Waszych opinii na temat Wolnego Oprogramo- Kubuntu, Edubuntu, Xubuntu... Z jednej strony to dalej i dojrzewa, docierając do ludzi na całym świe- wania. spore udogodnienie dla niedoświadczonego użyt- cie. Jeśli chodzi o niespodzianki dla społeczności, R: Istnieje grupa użytkowników, szczególnie mło- kownika Linuksa, ale co o tym sądzą sami twórcy? to właściwie mam nie niespodzianki, lecz raczej dych, którzy chcieliby stworzyć własną dystrybu- Czy to wszystko czasem nie prowadzi do zamiesz- długą listę rzeczy, które chcę zrobić, aby społecz- cję Linuksa, ale spotykają się z opiniami, że jest to czania w procesie wytwórczym? ność Ubuntu jeszcze bardziej dawała czadu. Myślę, zadanie trudne, wymagające wiedzy, zespołu, i że JB: I tak i nie. Szereg wersji dystrybucji w rodzi- że wspólnie nam się to uda. zamiast tego powinni dołączyć do już istniejącego nie produktów Ubuntu zapewnia użytkownikom projektu. Co Ty myślisz na temat tego zjawiska? większy wybór, to wielki plus, ale wraz z wybo- Czy potrzebujemy kolejnej dystrybucji? rem przychodzą i wątpliwości – trzeba najpierw JB: Jedną z najlepszych cech Otwartego Opro- wiedzieć, spośród czego się wybiera. Dlatego sa- gramowania jest możliwość wyboru oraz poten- mo Ubuntu jest właśnie tą edycją, która jest re- cjał. Jeśli zdolna i utalentowana osoba ma ochotę komendowana na http://ubuntu.com. Oczywi- stworzyć swoją dystrybucję, to powinna ona śmia- ście, nie jest to konieczność i dajemy możliwość ło spróbować. Można wiele zyskać. Jednakże, trze- używania takiej wersji społecznościowej czy utrzy- ba pamiętać, że budowanie dystrybucji Linuksa mywanej przez nas, na jaką użytkownik ma ochotę. to konkretna, ciężka praca, faktycznie wymagająca R: Dla niektórych, Linux jest urzeczywistnieniem sporej wiedzy technicznej oraz strukturalnej, dla- filozofii wolności, dla innych po prostu ucieczką tego podzielam zdanie, że rzeczywiście lepiej po- przed wszechobecnym Microsoftem, jeszcze inni święcić swoje siły już istniejącemu projektowi, na z kolei lubią wyzwania i ciekawią ich systemy ope- przykład Ubuntu. racyjne. A czym jest Linux dla Ciebie? R: Co – Twoim zdaniem – jest największą siłą JB: Wierzę w potencjał, jaki Otwarte Oprogramo- Ubuntu; cechą sprawiającą, że dystrybucja prze- wanie i zorganizowana społeczność dają ludziom. trwała i nie umarła na brak popularności – jak wie- Kiedy po raz pierwszy dowiedziałem się o Linuk- le projektów przed nim? sie, zafascynowałem się możliwościami, jakie ofe- JB: Tu bez niespodzianki – łatwość użycia oraz sil- ruje grupa tysięcy ludzi pracujących nad oprogra- na społeczność użytkowników. Myślę, że Ubuntu mowaniem, dzieląca się kodem i pomysłami, two- uczyniło Linuksa bardzo przystępnym dla użyt- rząca coś, co swobodnie może używać dowolna kowników: zapewnia pewny techniczny funda- osoba na świecie. Wierzę, że to właśnie koncepcja ment, odziedziczony po Debianie, i dodaje wiel- wolnego oprogramowania czyni taką wizję rzeczy- ką łatwość użycia. Ponadto, nasza niepowtarzalna

numer 19 – 2008 49 Rozrywka Czy pingwin może być torbaczem? Aleksandra Brzezi«ska

Na pierwszy rzut oka, to pytanie z lek- w wypadku Tuxa. Dlaczego nie miałby być więc bieramy w kolorze zbliżonym do koloru mate- ka absurdalne. Coś jak dowodzenie przy torbaczem? – skoro Tux to taki specjalny nielot riału – gdy chcemy by szew był niewidoczny pomocy algebry, że wnuk Hamleta jest co nie-lata, ale nie do końca, to i torbacz z nie- – lub też kontrastowym (w tym wypadku mu- dziadkiem Szekspira, a ten duchem swego go z-torbą, ale nie do końca. A konkretniej: nie simy być jednak pewni, że potrafimy wykonać ojca.(*) I co, dacie się przekonać? Tux-z-torbą a torba-z-Tuxem. O, a to już rzecz, któ- go wystarczająco prosto by nie szpecił). Jak zapewne wszystkim wiadomo, pingwiny to rą żaden użytkownik linuksa nie pogardzi. nieloty – co prowadzi nas dość prosto do wnio- Ostatnio zapanowała moda na ekologiczne tor- sku, że nie latają. Ba! Latać nie mogą: „nie-lot” by z tworzyw naturalnych. Z reguły przyozdobio- „nie-lata”. I już. Do tego miejsca nawet ci, którzy ne mniej lub bardziej głupawym nadrukiem z wy- przespali lekcje biologi, zgodzą się ze mną w stu szczerzonym globusem czy inszym, proekologicz- procentach. Pójdźmy jednak o krok dalej i zauważ- nym hasłem. To nasunęło mi myśl (nawet nie do- my, że jest jeden gatunek pingwina, który z lata- myślacie się jakie rzeczy potrafi wymyślić kobieta niem radzi sobie całkiem nieźle – by nie rzec, że próbująca zdrzemnąć się w pociągu w trakcie po- czuje się w przestworzach niczym ryba w wodzie. wrotu z pracy :P ), że można by coś takiego zro- Przewiduję, że w tym momencie już tak powszech- bić własnoręcznie. I tu przechodzimy (Już słyszę to nej ze mną zgody nie ma, a przedstawiciele Ho- gromkie: Nareszcie!) do sedna artykułu. mo Microsoftus (oczywiście szanujemy ich) zaczy- Niezbędne materiały: nają naprędce wertować encyklopedię. Wiecie już 1. Tkanina. o jakim pingwinie mowa? (Oho! Widzę, że u jed- 2. Nici. nych wzrósł poziom skupienia, u innych – zdegu- 3. Papier do naprasowywania na tkaninę („t-shirt Rysunek 1. Materiały wykorzystane w artykule stowania stopniem głoszonych tu herezji.) Tak, to transfer”). oczywiście Linux – a konkretniej: Tux. I nie cho- 4. Drukarka. Ad. 3 Papier (zwany niekiedy transferem lub – dzi mi wcale o żadne symulatory lotów (przecież 5. Nożyczki. rzadziej – folią), o którym mówię, przezna- równie naciąganego uzasadnienia nie przełknąłby 6. Żelazko. czony jest tylko i wyłącznie do drukarek atra- żaden szanujący się czytelnik Dragonii) – a o tak 7. Maszyna do szycia. mentowych. Kosztuje ok 3-4PLN za arkusz A4 poważne i zaawansowane technologicznie przed- (droższa jest wersja do tkanin ciemnych, ale nie Ad. 1 Jasna, dość wytrzymała i naturalna. W arty- przesadzajmy z wydatkami – stąd też wybierz- sięwzięcia jak Flight Linux Project czy wykorzysta- kule użyto surówki lnianej. 50cm na dość dużą nie zmodyfikowanego systemu Red Hat w robocie my jasny materiał). torbę wystarczy ze znacznym zapasem. O dziwo, papieru takiego nie sposób dostać księżycowym. Ad. 2 Pamiętacie artykuł Pingwin dla każdego? „Chwila! Chwila! Mieliśmy przecież dowie- w sklepach komputerowych (w każdym razie (Dragonia nr 12) Nie? – nie szkodzi, przypo- mi udało się uzyskać na twarzy ekspedientów dzieć się czy pingwin jest torbaczem!” Racja. Jed- mnę: taka sugestia od serca: czerwony, tudzież nie- nakowoż tym z lekka przydługawym wstępem sta- – płci męskiej, jak to zawsze w takich miejscach bieski szew na białym materiale nie prezentuje się – jedynie minę będącą odzwierciedleniem myśli rałam się dowieść, że pingwin oblicz ma wiele, najlepiej (na żółtym też). Ale! Tutaj ta zasada nie a co za tym idzie, nikt nas nie przekona, że bia- Przylazła baba i +p@#ˆ % głupoty). Dlatego od ra- obowiązuje. (Buahaha! Zaskoczeni? I dobrze! zu proponuję udać się do bardziej ekskluzyw- łe jest białe a czarne jest czarne – przynajmniej Wszak kobieta zmienną jest.) Tak więc, nici wy-

numer 19 – 2008 50 Rozrywka

nego sklepu papierniczego lub z artykułami dla Bo w każdym drzemie Kuba Roz- okazała się zauważalnie mniejsza od naszych zało- plastyków. Ewentualnie poszukać w internecie. żeń, czym prędzej przeskalowujemy przygotowaną Ad. 7 Nie jest niezbędna, ale znakomicie przyspie- pruwacz wcześniej grafikę i robimy dobrą minę do złej gry sza pracę, no i szacunek dla tego, kto uszyje Czas wyciąć torbę. Można ciąć „na oko”, bądź mówiąc, że „nie, to wcale nie miała być torba na taką torbę ręcznie. . . przygotować formę – zależy, na ile oceniamy swoje drugie śniadanie, a właśnie taka mała sakiewka na zdolności (jednakowoż, na oko to pacjent w szpita- pudełko zapałek”. Picassem być lu zmarł, więc. . . ). Pamiętać należy o tym, że torba OK. Wszystko zmierzone i sprawdzone (lustrza- Dobry pomysł to podstawa – tak więc najpierw będzie po zszyciu ciut mniejsza od wykroju, nie ne odbicie!). Drukujemy. Sprawa niby banalnie pro- określmy w przybliżeniu wielkość naszej torby. Ja zaszkodzi więc dodać drobnego (ok. 1cm będzie sta. Ale! Znowu problem. O ile w normalnych wy- zdecydowałam się na format zbliżony do A4. Na- wystarczający) naddatku na szew. drukach sposób włożenia papieru nie ma najmniej- stępnie włączamy wujka Google’a i szukamy na- szego znaczenia, o tyle tutaj stanowi o sukcesie tchnienia: śmieszny tekst, jakaś grafika (z Tuxem A wektor siły nacisku. . . bądź porażce przedsięwzięcia: druk musi się zna- oczywiście) – wszystko zależy od wyobraźni auto- Teraz nie pozostaje nam nic innego jak zszyć leźć na matowej (nieśliskiej) stronie kartki – śliska ra (tutaj cicho napomknę o prawach autorskich, etc. wycięte kawałki. Nie ma w tym żadnej filozofii, strona to folia zabezpieczająca. – jak to ze wszystkim, co znalezione w internecie). jedyne, na co zwrócę uwagę, to sposób wszycia Małe randez-vous z żelazkiem Drobna manipulacja przy użyciu programu Gimp pasków od uchwytów: szew powinien być wzmoc- – i pierwszy krok za nami. niony i wykonany tak, aby siła nacisku rozkładała Wzór dokładnie wycinamy (niezadrukowane UWAGA: Rysunki, a nade wszystko wszelkie na- się na możliwie dużej powierzchni materiału, aby fragmenty będą się odznaczać na tkaninie, więc pisy, należy wykonywać w LUSTRZANYM ODBI- nie wydarł się przy byle obciążeniu. zredukujmy je do minimum) i przykładamy w wy- CIU!!! w przeciwnym razie po naprasowaniu czeka branym miejscu torby (dla porządku napiszę, że nas katastrofa! (Zasada jak przy tworzeniu pieczą- wzorem do dołu, a śliskim do góry – bo jakkol- tek.) wiek nie zakładam tutaj jakiś wątpliwości, to jed- nak chodzą słuchy, że nie wszystkich wpuszczają do Media Markt. . . ).

Rysunek 3. Sposób wszycia uchwytów torby Idąc w ślady Gutenberga Rysunek 2. Przygotowywanie wzoru do nadruku Torba uszyta – ma już postać ostateczną, te- raz ostatnia szansa na zweryfikowanie rozmiarów naszego wydruku – jeśli, dziwnym trafem, torba Rysunek 4. Wzór przygotowany do naprasowania

numer 19 – 2008 51 Rozrywka

Nagrzewamy żelazko na maksimum. Gdy jest już Konkurs gorące, przykładamy do wzoru. Uwaga (a właści- Jak przystało na artykuł z przymrużeniem oka, wie dwie): primo – nie używamy pary (ważne!), konkurs niezupełnie związany z komputerami: we secundo – wzór nie może zostać przesunięty. Doci- wstępie do artykułu nawiązałam do pewnej bardzo skamy żelazkiem całą powierzchnię wzoru i przy- znanej książki – fragment oznaczony gwiazdką (*) prasowujemy – mocno, dokładnie i cierpliwie. Co – dla ułatwienia mogę dodać, że zaliczanej do tzw. jakiś czas sprawdzamy, czy rysunek już się dokład- dzieł literatury (więc Harrego Pottera możecie nie nie naprasował (czy wszędzie przylega dokładnie wertować). Spośród osób, które do dnia 20 lute- do tkaniny i nic nigdzie „nie odstaje” – szczególnie go br. nadeślą na adres [email protected] na brzegach). Sprawdzamy metodą „na oko” – nie prawidłowe rozwiązanie (imię i nazwisko autora próbujemy odkleić nadruku, bo dopóki jest gorący oraz tytuł) rozlosowana zostanie równie wesoła na- daje się zawsze oderwać. groda: pudełko na herbatę (lub inne szpargały) – z logo Tuxa oczywiście.

Rysunek 6. Torba torba Czy to wszystko, co możemy powiedzieć o pin- gwinie-torbaczu? Oczywiście nie: zamiast napraso- wanki użyć można np. specjalnej farby do tkanin, ale to już zupełnie inna bajka. . .

Rysunek 8. A tak prezentuje się nasza nagroda

Rysunek 5. Torba w trakcie usuwania folii zabezpieczającej Gdy uznamy, że już wystarczy (orientacyjnie: czas rzędu 5 minut lub więcej), odczekujemy dłuż- szą chwilę, aby papier zupełnie (koniecznie!) ostygł Rysunek 7. Coś z zupełnie innej bajki i delikatnie usuwamy folię zabezpieczającą (po- . . . a skoro bajka – to musi się dobrze kończyć, dobnie jak z naklejki). Voila: torba gotowa! dlatego proponuję konkurs. Szczegóły – poniżej.

numer 19 – 2008 52 Literatura Książki wydawnictwa Helion PHP i MySQL. Tworzenie stron WWW. Vademecum GIMP. Praktyczne projekty profesjonalisty. Wydanie trzecie Włodzimierz Gajda Luke Welling, Laura Thomson GIMP, którego nazwa pochodzi od GNU Tandem PHP i MySQL to niewątpliwie naj- Image Manipulation Program, to aplikacja słu- popularniejsze i najpowszechniej rozpoznawa- żąca do tworzenia i obróbki grafiki bitmapowej. ne narzędzia do tworzenia dynamicznych wi- Jest dostępny nieodpłatnie, ale jego możliwo- tryn WWW i aplikacji internetowych. Ich po- ści stawiają go w jednym rzędzie z „królem” – pularność jest wynikiem nie tylko ogromnych Photoshopem. Warstwy, ogromna liczba filtrów możliwości, ale także bezpłatnego dostępu do i efektów specjalnych, rozbudowane narzędzia obu narzędzi. Za pomocą PHP i MySQL two- zaznaczania i rysowania – to tylko niektóre z je- rzone są proste skrypty, mechanizmy zarządza- go zalet. Dodatkowym powodem popularności nia treścią serwisów WWW, sklepy interneto- GIMP-a jest jego dostępność nie tylko dla syste- we i tysiące innych aplikacji. Społeczność pro- mu Windows, ale również dla Linuksa i Mac OS gramistów korzystających z PHP i MySQL stale X. Dzięki temu praktycznie każdy użytkownik się powiększa, a producenci tych narzędzi nie- komputera może bez żadnych kosztów stwo- ustannie pracują nad ich udoskonalaniem. rzyć sobie cyfrową ciemnię fotograficzną. Książka PHP i MySQL. Tworzenie stron Książka GIMP. Praktyczne projekty to podręcznik przedstawiający podstawy WWW. Vademecum profesjonalisty. Wydanie trzecie to kolejne wydanie bestselle- obsługi tej aplikacji. Czytając go, nauczysz się przeprowadzać korekcję i re- rowego podręcznika opisującego wszystkie aspekty projektowania stron i apli- tusz cyfrowych fotografii oraz w praktyczny sposób wykorzystywać narzędzia kacji internetowych z wykorzystaniem PHP i MySQL. W trzecim wydaniu GIMP-a. Dowiesz się, jak zaznaczać fragmenty obrazów, stosować warstwy książki znaleźć można szczegółowe omówienie możliwości najnowszych wer- i maski, dodawać do obrazów tekst i ozdobne ramki. Przeczytasz także o przy- sji obu narzędzi – programowania obiektowego, obsługi wyjątków, biblioteki gotowywaniu zdjęć cyfrowych do wykonania odbitek oraz o rysowaniu nowych SimpleXML oraz procedur składowanych. Książka zawiera przykłady demon- obiektów na obrazach. strujące wykorzystanie PHP i MySQL do realizacji różnych zadań związanych Zawartość: z funkcjonowaniem dynamicznych witryn WWW. Może to być uwierzytelnia- — Narzędzia tekstowe. nie użytkowników, tworzenie koszyka na zakupy, dynamiczne generowanie — Modyfikacja kolorystyki obrazów. obrazków oraz dokumentów w formacie PDF, wysyłanie poczty elektronicznej — Wyrównywanie warstw. i zarządzanie nią oraz łączenie się z usługami WWW za pomocą XML-a. — Zaznaczanie i modyfikowanie zaznaczeń. — Przekształcanie obrazów. — Ścieżki i maski. — Retusz zdjęć.

numer 19 – 2008 53 Literatura Książki wydawnictwa PWN Akademia sieci Cisco. CCNA semestr 3. Język C# i platforma .NET Podstawy przełączania oraz routing pośredni Andrew Troelsen Wayne Lewis C# jest językiem programowania platformy .NET, nowego produktu Microsoftu. Andrew Tro- Nowe wydanie oficjalnego podręcznika elsen uczy, jak wykorzystać C# do stworzenia pra- Akademii Sieci Cisco przeznaczonego na drugi wie każdego rodzaju aplikacji .NET, począwszy semestr kursu CCNA v3.1.1. Autorzy napisali od aplikacji systemu Windows a skończywszy na książkę całkiem na nowo, aby zapewnić świe- aplikacjach sieci WWW. Dokładnie omawia każdy że spojrzenie na kurs dostępny on-line w sieci. aspekt pisania programów .NET i podaje dobrze Publikacja obejmuje wszystkie tematy szkolenia dobrane przykłady. Najlepszą rekomendacją książ- uzupełnione o dodatkowe przykłady i przedsta- ki jest informacja przygotowana przez Autora: wia alternatywne podejście do niektórych za- Choć wydaje się to niemal niemożliwe, pierwsze wy- gadnień. Wszystko to ma pomóc w zrozumie- danie tej książki pojawiło się kilka lat temu podczas niu tematyki związanej z pojęciami i technolo- konferencji TechEd 2001 w Atlancie, Georgia. Od tego giami sieci. czasu książka została przetłumaczona na osiem różnych Nowe elementy książki pomagają w nauce (ludzkich) języków, otrzymała nominację do nagrody Jolt w ramach tego kursu: Award 2002 oraz wygrała w kategorii książek dotyczących programowania w konkursie — Cele rozdziału – przegląd podstawowych Referenceware Excellence Awards 2003. Uczciwie przyznaję, że te sukcesy zaskoczyły pojęć zawartych w rozdziale, przedstawiony mnie, gdyż gdy prezentowałem tę książkę moją myślą było „Mam nadzieję, że nie jest to w postaci pytań. bubel”. Chciałbym więc podziękować wszystkim czytelnikom, recenzentom i nabywcom — Ważne terminy – odwołania do uaktualnionej listy pojęć wprowadzanych pierwszego wydania, którzy przysyłali do mnie swoje uwagi (pozytywne i negatywne) w rozdziale ze wskazaniem ich definicji w tekście. na temat książki i swoich doświadczeń z wykorzystaniem CLR. — Słownik terminów – nowy słownik pojęć liczący ponad 250 terminów. Dla osób, które znają pierwsze wydanie książki mam dobrą wiadomość – tekst został — Sprawdzian nabytej wiedzy, pytania i odpowiedzi – na końcu rozdziału w znacznym stopniu poprawiony. Po pierwsze każdy rozdział został uaktualniony. Po- znajduje się zestaw pytań sprawdzających stopień opanowania poruszanej jawiło się też kilka nowych rozdziałów, w tym omówienie zdalnej warstwy .NET oraz tematyki. Pytania podane są w postaci zgodnej z treścią kursu on-line. Na podstawowe elementy CLR (kontekst, procesy i czego nie wolno robić). Znacznie po- końcu książki umieszczone są odpowiedzi. głębione zostało zagadnienie ASP.NET. Tak jak poprzednio wszystko zostało omówione — Pytania i zadania problemowe – zestaw pytań i czynności do wykonania na przyjaznych i łatwo dostępnych przykładach. w postaci przypominającej złożone pytania wchodzące w skład egzaminów Nowi czytelnicy powinni wiedzieć, że jest to książka przeznaczona dla osób two- CCNA. w dodatku podano odpowiedzi na wszystkie pytania. rzących oprogramowanie, które mają nieco doświadczenia w korzystaniu z nowocze- — Dodatkowe zadania praktyczne – dodatkowe opisy procesów i wzory opi- snych języków obiektowych (nie ma tu więc trzech rozdziałów na temat iteracji i bu- sujące praktyczne problemy z zakresu sieci są zgromadzone w dodatku C. dowy struktur decyzyjnych). Zadaniem tej książki jest zapewnienie solidnych podstaw programowania w języku C# oraz przekazanie podstawowych zagadnień związanych Ponadto w treści rozdziałów wyróżniono kolejne kroki wykonywanych z platformą .NET (asemblacja, Windows Forms, Web Forms itp.). Po przeczytaniu działań oraz odwołania do ćwiczeń laboratoryjnych. Dodatkowy materiał moż- i przyswojeniu tych dwudziestu rozdziałów, Czytelnicy będą mogli zastosować nabytą na znaleźć też w podręcznikach laboratoryjnych do kursu (Labs and Study Guide wiedzę do konkretnych zadań programistycznych i będą przygotowani do korzystania nietłumaczone na język polski). ze świata .NET na swoich własnych warunkach.

numer 19 – 2008 54