Author Archives: informatyk

Instalacja Linuxa

Wstęp

Rozdział ten opisuje instalację linuxa.

Jeśli Państwa BIOS wspiera start z CD-ROM-u (prawie wszystkie BIOSY to robią ), mogą Państwo ustawić kolejność startu z CD-ROM-u.

Linux Mandrake

Mandrake Linux wspiera dużą liczbę urządzeń. Lista urządzeń jest zbyt obszerna, żeby ją tutaj w całości przytoczyć.

Kilka typów sprzętu nie będzie przez GNU/Linux wspierane, ponieważ prace nad nimi nie są jeszcze ukończone lub nikt jeszcze nie napisał sterowników dla tych urządzeń lub z całkiem innych powodów. Na przykład:

winmodems, nazywane także ,,Controllerless”- lub Software-Modemy: wsparcie dla tych urządzeń jest obecnie bardzo rzadko spotykane.

Wskazówki przed instalacją

Budowa dysku twardego

Dysk twardy jest podzielony na wiele małych sektorów. Szereg sektorów tworzy partycję. Na dysku twardym mogą Państwo utworzyć tak wiele partycji jak Państwo chcą. Każda partycja jest interpretowana jako samodzielny dysk twardy.

Do bezkonfliktowego przebiegu tych procesów konieczna jest przestrzeń wymiany (w przypadku gdy nie wystarcza pamięć RAM). Ta specjalna partycja jest często określana jako ,,Swap”.

Określenie struktury dysku twardego

Najprostszy wariant występuje wtedy, gdy posiadają Państwo dokładnie 2 partycje: jedna jako przestrzeń wymiany i druga dla danych.

Kolejny wariant, jak już wspomniano, to rozdzielenie programów i danych. Często jest zakładana jeszcze jedna partycja tak zwany korzeń,(root) oznaczany: ,,/”. Na tej partycji znajduj ą się programy niezbędne do uruchomienia komputera.

Nazwanie dysków twardych i partycji

GNU/Linux używa konsekwentnej metody do nazewnictwa partycji. Po pierwsze przyporządkowanie nazwy nie jest uzależnione od typu partycji, po drugie partycje są nazywane według ich pozycji na dysku twardym i są im przyporządkowane stałe symbole:

Urządzenia przy pierwszym IDE-kontrolerze (np.dysk twardy, czytnik CD-ROM) otrzymują zawsze nazwy /dev/hda (Master) i /dev/hdb (Slave).

Urządzenia przy drugim IDE-kontrolerze nazywają się odpowiednio /dev/hdc (Master) i /dev/hdd (Slave).

Dalsze IDE-urządzenia (np.dodatkowy IDE-kontroler), będą nazwane odpowiednio/dev/hde, /dev/hdf itd.

SCSI-dyski zostaną według kolejności nazwane/dev/sda, /dev/sdb itd. SCSI CD-ROM- urządzenia zostaną określone jako /dev/scd0, /dev/scd1 itp.

Partycje otrzymują swoje nazwy w zależności od dysku, na którym się znajdują (wybrałem tutaj najczęściej występujący przypadek – partycja na IDE-dysku jako Master przy pierwszym IDE-kontrolerze):

Partycje podstawowe (primary partition) jak i rozszerzone otrzymają o ile istnieją oznaczenie /dev/hda1 bis /dev/hda4.

Partycje logiczne, jeżeli istnieją, otrzymają oznaczenie /dev/hda5, /dev/hda6 itd.

Wyszukiwarka towarów w sklepie internetowym

Chcąc udostępnić potencjalnym klientom efektywny mechanizm wyszukiwania w bazie towarów, koniecznym stało się skonstruowanie odpowiednich mechanizmów umożliwiających pobranie od internauty interesującej go frazy, przeszukanie bazy danych oraz zaprezentowanie znalezionych pozycji. Pewnym problemem wydaje się być tutaj konieczność połączenia efektywności mechanizmu wyszukującego z możliwościami silnika bazy danych. Większość obecnie istniejących baz danych nie pozwala na wyszukiwanie pełnotekstowe przy wykorzystaniu indeksu, gdy szukana fraza zaczyna się znakiem wieloznacznym w zapytaniu typu „LIKE”. Najnowsze komercyjne bazy danych takie jak ORACLE wspierają ten mechanizm poprzez statyczne utworzenie specjalnych struktur indeksujących pełnotekstowo całe pola tabeli, jednakże jedynie statycznie. Każdorazowe dopisanie krotki do tabeli wymusza ponowne pełne zindeksowanie całości tabeli, co praktycznie wyklucza to zastosowanie w przypadku bazy, gdzie są modyfikowane lub dodawane kolejne rekordy.

Rysunek 7. Główna strona wyszukiwarki towarów.

PostgreSQL posiada bardzo zaawansowane metody i typy indeksów, jednak nie ma możliwości ich użycia w przypadku pełno tekstowego wyszukiwania. Silnik bazy danych jest wtedy zmuszony do wykonania pełnego przejścia po wszystkich krotkach tabeli (tzw. full scan), co drastycznie obniża efektywność tego rozwiązania.

W obecnej fazie rozwoju aplikacji sklepu internetowego zdecydowano się na pewne rozwiązania skutecznie eliminujące wykonywanie pełnych przejść w tabelach. W głównym oknie wyszukiwawczym jednak taki mechanizm musiał tymczasowo pozostać ze względu na konieczność zapewnienia pełnego wyszukiwania nawet kosztem zwiększonego obciążenia systemu i spowolnienia samego procesu. W module ofert przy przeglądaniu gotowych zestawień towarów zastosowano zmodyfikowany mechanizm głównej wyszukiwarki w taki sposób aby nie używać zapytań zaczynających się znakiem wieloznacznym „%” w klauzuli „LIKE”, co spowodowało możliwość użycia przez motor bazy danych indeksów na przeglądanych polach a tym samym wykonywanie całości zapytania w sposób błyskawiczny.

zam. nazwa towaru data ceny cena netto cena brutto dostępny info
4 PHILIPS 21PT1354 TELEWIZOR 2001-06-06 777.87 949.00 tak info
14 4 PHILIPS 21PT1542 TELEWIZOR

PHILIPS 21PT1654.

2000-10-20

2001-06-08

728.69

818.85

889.00

999.00

tak info
4 PHILIPS 21PT1663 2001-01-02 982.79 1199.00 tak info
4 TELEWIZOR PHILIPS 21PT1664 2001-05-29 818.85 999.00 tak info
4

4

PHILIPS 21PT2665 TELEWIZOR

PHILIPS 21PT4475 TELEWIZOR.

2001-05-09 982.79 1199.00
2001-04-20 900.82 1099.00
4 PHILIPS 21PT5505 TELEWIZOR 2001-01-02 1392.62 1699.00 tak info
4 TELEWIZOR COMBI 21PY330 2001-03-15 1556.56 1899.00 tak info
4 PHILIPS 21PY708 2001-06-12 1966.39 2399.00 tak info

Rysunek 8 — Prezentacja wyników wyszukania towaru.

Chcąc rozwiązać tzw. problem „full text search” czyli pełnotekstowego wyszukiwania korzystającego z indeksów (postaresa1.org/idocs/index.php?indices.html) w przygotowaniu jest pewien model przechowywania nazw towarów w dodatkowej tabeli, ale w taki sposób, aby możliwym stało się zaindeksowanie każdego wyrazu z nazwy towaru. Opracowana koncepcja polega na podziale nazwy towarów na odrębne wyrazy a następnie na zapisanie ich do odrębnych pól w krotce.

Każde pole będzie polem indeksowanym tak więc przy konstruowaniu zapytania możliwym stanie się wykorzystanie w mechanizmie wyszukiwarki odwołania klauzulami „LIKE” bez podawania na początku znaku wieloznacznego „%” a zamianę szukanej frazy na kilka klauzul typu „LIKE ‘towar%’” co pozwoli na użycie indeksów jak w przypadku przeszukania w module ofert. Pole z nazwą towaru i oznaczeniem producenta sumarycznie ma długość 34+19=53 znaki. Zakładając że w skrajnym pesymistycznym przypadku nazwa towaru złożona będzie z pojedynczych liter rozdzielanych spacjami to otrzymujemy około 27 pól

Rysunek 9 — Prezentacja wyszukiwania predefiniowanego rodzaju towarów.

potrzebnych do rozbicia na wyrazy (53/2=26+1). Tak więc przyjmujemy, że 30 pól jest liczbą wystarczająca w zupełności do przechowania całej nazwy towaru w rozbiciu na wyrazy. Spacje nie są przechowywane bowiem służą jako znak, według którego dokonujemy rozbicia na części składowe. Do kolejnych pól rekordu wpisujemy kolejne wyrazy z nazwy towaru a sama treść zapytania wykonującego wyszukanie z wykorzystaniem indeksów przyjmie wtedy przykładową postać:

SELECT * FROM subtowary WHERE pole1 LIKE ‘szukana_fraza%’ OR pole2 LIKE ‘szukana_fraza%’ OR…..

Zakładamy oczywiście że szukana fraza jest pojedynczym wyrazem, a w przypadku, gdy jest to kilka wyrazów wykonujemy kilka takich zapytań dla każdego z wyrazów, składanych następnie w jeden zestaw wyników. Powyższy projekt rozwiązania problemu pełnych przejść po tabeli wydaje się być optymalnym do tego celu rozwiązaniem i będzie testowo zastosowany w aplikacji sklepu internetowego w najbliższym czasie.

Kod źródłowy wyszukiwarki

Mechanizm wyszukiwarki został wbudowany w różne strony serwisu internetowego firmy. W momencie gdy powstawał, język PHP nie posiadał uniwersalnej klasy obiektów służących do odwołania do bazy danych. Każdy typ bazy danych wymagał użycia innego zestawu poleceń. Chcąc maksymalnie uniezależnić się od samej bazy zastosowano uniwersalne definicje funkcji odwołujących się do baz. Wykorzystano do tego celu bibliotekę phpDB której autorami są J. Thong i C. Fonk (phpdb.linuxbox.com) pozwalającą na zamaskowanie metod odwołań do baz MySQL, MSQL, PostgreSQL, Microsoft SQL Server, Sybase na jednakowe funkcje, co pozwala na łatwą wymianę silnika bazy na inny bez konieczności zmian w kodzie źródłowym. Obecnie rozwijana jest przez autorów języka PHP, klasa uniwersalnych funkcji, metod i obiektów pozwalająca na uniknięcie problemów związanych z koniecznością przeróbek kodu w takich przypadkach. Projekt jest obecnie w bardzo wczesnej fazie rozwoju jednakże fakt tworzenia go przez ekipę tworzącą PHP gwarantuje, że wkrótce możliwym będzie zastosowanie go w systemach produkcyjnych. Nosi on nazwę „PEAR: the PHP Extension and Application Repository”. Poniższy listing prezentuje i omawia kod php wyszukiwarki. Niektóre linie zostały sztucznie podzielone na krótsze ze względu na ich długość, co oznaczono znakiem „\” (jednakże on sam w kodzie oryginalnym nie może występować). Listing zawiera komentarze świadczące o zespołowej pracy nad powstającym kodem oraz podział zadań na kod dostępu i obsługi bazy danych oraz kod dynamicznego generowania strony na podstawie pobieranych z bazy danych rekordów.

Słowa kluczowe i ich dobór

W pozycjonowaniu słowami kluczowymi (ang. Keywords) nazywamy wyrazy bądź wyrażenie, które użytkownicy wpisują jako zapytanie do wyszukiwarek.

Odpowiedni dobór słów kluczowych jest niezwykle ważną częścią optymalizacji i dalszego pozycjonowania strony www. Od tego wyboru zależy czy strona, którą będziemy pozycjonować stanie się popularna i będzie miała dużą ilość odwiedzin. Ilość odwiedzin jest sprawą nadrzędną w optymalizacji i pozycjonowaniu. Na pomoc przy doborze słów kluczowych przychodzą nam narzędzia zbierające słowa kluczowe. Dzięki nim można dowiedzieć się jakie słowa kluczowe są najczęściej wpisywane przez użytkowników Internetu.

Poniżej omówione zostaną najpopularniejsze narzędzia wspomagające dobór słów kluczowych.

Google Keyword Tool

Najlepsze i najpopularniejsze narzędzie do doboru słów kluczowych. Google udostępnia narzędzie, które przedstawia propozycje słów kluczowych dla usługi AdWords. Google Keyword Tool jest prawdopodobniej najlepszym narzędziem współpracującym z polskimi stronami. Posiada wiele przydatnych funkcji, takich jak: dopasowanie według kraju, języka, wyszukanie synonimów, natężenie poszukiwań słowa kluczowego i wiele innych. Narządzie zwraca do 201 wyników. Popularność słów kluczowych obliczana jest na podstawie danych pochodzących z wyszukiwarki Google. Daje to nam precyzyjny obraz dla tej właśnie wyszukiwarki.

Rysunek 1 Narzędzie Google Keyword Tool.

Źródło: Opracowanie własne na podstawie [adwords.google.pl/select/KeywordToolExtemal, 2008]

Keyword Suggestions for Overture Tool

Narzędzie po wprowadzeniu przez nas słowa kluczowego zwróci nam słowa, które były wprowadzane do wyszukiwarki w ostatnim miesiącu. Dzięki temu narzędziu dowiemy się również ile razy dane słowo bądź fraza było wyszukiwane.

Rysunek 2 Keyword Suggestions for Overture Tool.

Źródło:   Opracowanie własne na podstawie [seochat.com/seo-tools/keyword-suggestions-overture/, 2008]

Ranking Onet Boksy

Jest to typowy ranking bez żadnych dodatkowych narzędzi. Przygotowany jest on na podstawie wyszukiwarki Onet (szukaj.onet.pl). Ranking zawiera ponad 13 tysięcy pozycji. Narzędzie działa na podstawie popularności słów kluczowych w wyszukiwarce Onet. Z racji małej popularności wyszukiwarki ranking ten można stosować jako uzupełnienie dla wcześniej omawianych narzędzi.

Tabela 1 Ranking Onet Boksy

Źródło: Opracowanie własne na podstawie [boksy.onet.pl/ranking.html?n=1,2008]

Hasło Wyświetlenia
filmy erotyczne 215572
strony erotyczne 171171
uczniowie absolwenci 150256
dojrzale 45953
zdjęcia erotyczne 42163
teledyski 33105
aukcje internetowe 28245
nastoletnie 26764
lotto 26104
wyszukiwarki 24429
ogloszenia towarzyskie 24315
amatorki 17923
kobiety 16635
gry online 16049
serwisy erotyczne 16035
senniki 15888
horoskopy 15613
hardcore 14775
seks grupowy 14766
praca 14597

Ranking haseł Wirtualnej Polski

Serwis udostępnia dwa rankingi haseł: Najpopularniejsze zapytania i Ostatnie zapytanie. Z racji małej popularności wyszukiwarki ranking haseł Wirtualnej Polski podobnie jak Ranking Onet Boksy może stanowić tylko uzupełnienie przy doborze słów kluczowych.

Najpopularniejsze zapytania jest to ranking najczęściej wpisywanych słów kluczowych w wyszukiwarce Wirtualnej Polski (szukaj.wp.pl). Ranking podzielony jest na liczne kategorie, a użytkownik może wybrać sobie konkretny tydzień lub miesiąc z archiwum.

Ostatnie zapytanie jest to ranking słów kluczowych, które zostały ostatnio zadane. Tabela przedstawiające słowa jest cały czas aktualizowana.

Wybór kryteriów szczegółowych

W celu wyboru odpowiednich kryteriów szczegółowych należy zastanowić się, jakie parametry dotyczące poziomu życia nas interesują. W tym miejscu pojawia się pierwszy problem, jaki napotykamy, a mianowicie subiektywizm tego wyboru. Ludzie przy ocenie jakości życia w określonym miejscu kierują się różnymi czynnikami, np. liczba miejsc w teatrach, liczba lekarzy, średnia płaca w wybranym mieście, itp. Niestety należy wybrać te kryteria, które mają dla nas znaczenie, w ten sposób ogranicza się do pewnego stopnia możliwość analizy poziomu życia dla innych osób o innych potrzebach. Podczas doboru kryteriów można napotkać na następujące problemy:

  • nierównoważność kryteriów: część kryteriów jest bardziej istotna, a część mniej istotna,
  • część kryteriów jest w stosunkach antagonistycznych, oznacza to, że ulepszenie jakiegoś kryterium spowoduje automatycznie pogorszenie innego,
  • kryteria szczegółowe dzielą się najczęściej na dwie grupy: kryteria ilościowe (np. średnia płaca na danym terenie), kryteria jakościowe – oszacowywane na podstawie ocen ekspertów z danych dziedzin (np. ocena stopnia ryzyka danej inwestycji). W tym drugim wypadku powstaje problem właściwego ustalenia wartości dla danego kryterium – oceny poszczególnych ekspertów mogą się od siebie różnić, czasami nawet znacząco, dlatego kryteria z grupy jakościowych są obarczone dużym stopniem subiektywizmu,
  • ilość kryteriów może być zbyt duża przez co trudne staje się oszacowanie, które z parametrów są ważniejsze, a które mniej ważne.

W przypadku analizy poziomów życia w poszczególnych województwach wykorzystywane są tylko kryteria ilościowe, dzięki czemu udało się zmniejszyć stopień subiektywizmu kryteriów szczegółowych.

Kryteria szczegółowe podzielono na sześć kategorii:

  • zdrowie,
  • finanse,
  • infrastruktura,
  • czystość,
  • praca,
  • przestępczość,

W kategorii zdrowie umieszczono kryteria:

  • lekarze, kryterium to oznacza liczbę lekarzy na 10 tys. ludności,
  • łóżka szpitalne, oznaczające ilość łóżek szpitalnych na 10 tys. ludności,

W kategorii finanse umieszczono kryteria:

  • środki trwałe, kryterium to oznacza wartość brutto środków trwałych w przeliczeniu na jednego mieszkańca danego województwa,
  • produkt krajowy brutto – wartość produktu krajowego brutto w zł. w przeliczeniu na jednego mieszkańca,
  • dochody – wartość nominalnych dochodów brutto w sektorze gospodarstw domowych w zł. na jednego mieszkańca.

Kategoria infrastruktura zawiera następujące kryteria:

  • kolej – linie kolejowe eksploatowane normalnotorowe w km na 100 km2 powierzchni ogólnej,
  • drogi – drogi publiczne o twardej nawierzchni w km na 100 km2 powierzchni ogólnej województwa,
  • sklepy – ilość sklepów w danym województwie w przeliczeniu na 10 tys. ludności,

Następną kategorią jest czystość i zawiera następujące kryteria:

  • oczyszczalnie – ludność korzystająca z oczyszczalni ścieków w procentach ludności ogółem,
  • emisja gazów – emisja przemysłowych zanieczyszczeń powietrza gazowych i pyłowych z zakładów szczególnie uciążliwych dla czystości powietrza w tys. ton na 1 km2 powierzchni województwa,
  • lesistość – powierzchnia gruntów leśnych w procentach powierzchni całkowitej województwa,

Kategoria praca zawiera następujące kryteria:

  • pracujący – liczba osób zatrudnionych w przeliczeniu na 10 tys. ludności w danym województwie,
  • bezrobotni – liczba zarejestrowanych bezrobotnych w przeliczeniu na 10 tys. ludności w danym województwie,
  • średnia płaca – przeciętne miesięczne wynagrodzenie brutto w zł. w danym województwie,

Ostatnią kategorią jest przestępczość, która zawiera kryteria:

  • przestępstwa – ilość przestępstw stwierdzonych w zakończonych
  • postępowaniach przygotowawczych na 10 tys. ludności,
  • wskaźnik – wskaźnik wykrywalności sprawców przestępstw stwierdzonych w procentach.

Wykorzystywane oprogramowanie i urządzenia

pisanie prac z informatyki

Zebra

Zebra jest programem do rutowania pakietów w oparciu o protokół TCP/IP, wspiera następujące protokoły routingu dynamicznego: RIPv1, RIPv2, RIPng, OSPFv2, OSPFv3, BGP-4, oraz BGP-4+ jak również specjalną odmianę BGP zachowując „Route Reflection” i „Route Server”.

Zebra działa w oparciu o protokół IPv4 jak również IPv6. Zebra umożliwia także rutowanie protokołu MIB[1] gdy działa wraz z nią SNMP demon[2], który korzysta z protokołu SMUX[3].

Zebra używa zaawansowanej architektury, aby dostarczyć wysoce wydajny wieloserwerowy system rutujący. Zebra posiada w pełni interaktywny interfejs użytkownika dla każdego z protokółów, który korzysta ze wspólnych komend.

Jak większość programów dostarczanych wraz z systemem UNIX lub pisanych specjalnie dla niego, zebra jest oficjalnym programem rozpowszechnianym na zasadach licencji GNU „General Public Licence”[4].

Czym jest Zebra?

W dzisiejszych czasach sieci TCP/IP pokrywają cały świat. Internet dotarł do wielu krajów, firm a także do domów. Podczas połączeń internetowych, pakiety przechodzą przez wiele routerów z obsługa protokołu TCP/IP. System operacyjny z zainstalowaną Zebrą zachowuje się jak dedykowany router, który wymienia informacje o trasach z innymi routerami. Zebra używa zebranych informacji do aktualizacji tablicy routingu w jądrze systemu, więc dane docierają tam gdzie powinny. Możliwa jest zmiana konfiguracji w sposób dynamiczny, możliwe jest również podejrzenie tablicy routingu z poziomu interfejsu samej Zebry.

Zebra wspierając protokół rutowania, może manipulować flagami danego interfejsu sieciowego, zmieniać adres IP, ruting statyczny i tak dalej.

Tradycyjnie, w ruterach w oparciu o system UNIX, konfiguracji dokonuje się w oparciu o polecenia takie jak: ifconfig i route. Tablice routingu można wyświetlić poleceniem netstat –r, jednak większość tych poleceń działa jedynie z poziomu użytkownika root. Zebra korzysta jednak z innej nieco metody administracji, są dwa rodzaje uprawnień: pierwszy to normal mode”, drugi to enable mode – w trybie tym dozwolone są zmiany parametrów routera. Natomiast w trybie normal mode użytkownik może jedynie przeglądać konfigurację routera.

Obecnie, Zebra wspiera większość protokołów typu unicast routing protocol, natomiast multicast routing protocol takie jak: BGMP, PIM-SM, PIM-DM będą dostępne w Zebrze 2.0.

W niedalekiej przyszłości dodana zostanie obsługa QoS[5] oraz filtrowania pakietów, co spowoduje że Zebra będzie w pełni funkcjonalnym programem rutującym.

Architektura systemu

Każdy program rutujący w dedykowanych ruterach działa jako jeden w pełni funkcjonalny proces rutujący. Zebra przybrała jednak inne podejście, zrobiona jest jako kolekcja kilku demonów, które jednak pracują razem aby rutować pakiety.

Demon ripd odpowiada za protokół RIP, ospfd jest demonem wspierającym protokół OSPF w wersji 2, natomiast bgpd jest odpowiedzialny za BGP-4. Za zmiany w tablicy rutingu jądra systemu oraz za redystrybucję odpowiada demon zebra. Prostym zadaniem jest uruchomienie nowego procesu rutującego w systemie, gdzie pracuje zebra, wystarczy jedynie uruchomić odpowiedniego demona odpowiadającego za odpowiedni protokół.

Nie ma potrzeby aby wszystkie te demony były uruchomione na tej samej maszynie, ale można uruchomić kilka tych samych protokołów równocześnie.

Taka architektura daje nowe możliwości dla systemu rutującego.

bgpd ripd ospfd zebra
 
Unix Kernel routing table

Zebra System Architecture

Wieloprocesowa architektura daje nam wiele możliwości takich jak możliwość łatwej rozbudowy czy prostej naprawy błędów. Takie rozwiązanie udostępnia nam wiele plików konfiguracyjnych (każdy demon ma swój oddzielny plik konfiguracyjny) i terminali do konfigurowania każdego z protokołów.

Gdy chcemy skonfigurować ruting statyczny musimy owe zmiany wprowadzić w pliku konfiguracyjnym Zebry, natomiast BGP konfigurujemy w po przez edycję pliku konfiguracyjnego demona bgpd. Jest to bardzo denerwujące rozwiązanie, dlatego też, aby rozwiązać ten problem, Zebra wprowadziła zintegrowaną powłokę użytkownika nazwaną vsh. Vsh łączy się z każdym z demonów w systemie UNIX i działa jak proxy dla poleceń wydawanych przez użytkownika.

Zebra została zaplanowana aby używać wielowątkowego mechanizmu, jeżeli jądro systemu zostało odpowiednio skompilowane.

Jednak na dzień dzisiejszy, biblioteka, która odpowiada za ten mechanizm dostarczana wraz z GNU/Linux czy FreeBSD ma problemy podczas uruchamiania pewnych usług, takich jak oprogramowania rutującego, więc Zebra nie używa wątków, w zamian używa systemowej procedury select(2)[6] do multipleksowania zdarzeń.

Obsługiwane platformy sprzętowe.

GNU Zebra obecnie jest testowana na:

  • GNU/Linux 2.0.37
  • GNU/Linux 2.2.x
  • GNU/Linux 2.3.x
  • FreeBSD 2.2.8
  • FreeBSD 3.x
  • FreeBSD 4.x
  • NetBSD 1.4
  • OpenBSD 2.5
  • Solaris 2.6
  • Solaris 7

Pewne stosy protokołu IPv6 są aktualnie jeszcze w fazach rozwoju. Zebra obsługuje następujące stosy protokołu IPv6. Dla BSD, rekomenduje się używanie stosu IPv6 KAME. W systemie Solaris IPv6 nie jest jeszcze wspierane.

  • Linux IPv6 stack for GNU/Linux 2.2.x and upper.
  • Kame IPv6 stack for BSD
  • INRIA IPv6 stack for BSD

Dokumenty RFC związane z Zebrą

  • RFC1058
    Routing Information Protocol. C.L. Hedrick. Jun-01-1998
  • RFC1771
    A Border Gateway Protocol 4 (BGP-4.) Y. Rekhter & T. Li. March 1995.
  • RFC1997
    BGP Communities Attribute. R. Chandra, P. Traina & T. Li. August 1996.
  • RFC2080
    RIPng for IPv6. G. Malkin, R. Minnear. January 1997.
  • RFC2283
    Multiprotocol Extensions for BGP-4. T. Bates, R. Chandra, D. Katz, Y. Rekhter. February 1998.
  • RFC2328
    OSPF Version 2. J. Moy. April 1998.
  • RFC2453
    RIP Version 2. G. Malkin. November 1998.
  • RFC2545
    Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing. P. Marques, F. Dupont. March 1999.
  • RFC2740
    OSPF for IPv6. R. Coltun, D. Perguson, J.Moy. December 1999.
  • RFC2796
    BGP Route Reflection An alternative to full mesh IBGP T. Bates R. Chandrasekeran. June 1996.
  • When SNMP support is enabled, below RFC is also supported
  • RFC1227
    SNMP MUX protocol and MIB. M.T. Rose. May-01-1991.
  • RFC 1657
    Definitions of Managed Objects for the Fourth Version of the Border Gateway Protocol (BGP-4) using SMIv2. S. Willis, J.Burruss, J. Chu, Editor. July 1994.
  • RFC1850
    OSPF Version 2 Management Information Base. F. Baker, R. Coltun. November 1995.

Bibliografia:

technologie.pl

manticore.2y.net/doc/zebra/overview.html


[1] Management Information Base, jest baza zawierająca informacje o obiektach zarządzalnych przy użyciu protokołu SNMP Simple Network Management Protocol.

[2] W systemach UNIX tak nazywa się programy, które zajmują się obsługą sieci TCP/IP

[3] Jest to protokół zarządzający sesjami w systemach UNIX, więcej na stronie: http://www.w3.org/TR/WD-mux

[4] GNU Powszechna Licencja Publiczna dotycząca rozpowszechniania darmowego oprogramowania, polskie tłumaczenie jest dostępne pod adresem: http://gnu.org.pl/text/licencja-gnu.html

[5] QoS, skrót od Quality of Service oznaczający zapewnienie jakości usług

[6] Procedura systemowa w systemach UNIX służąca do multipleksowania synchronicznego I/O

Badanie efektywności programu GenMachine w rozwiązywaniu zadania optymalnej selekcji portfela

Badanie ma na celu wykazać przydatność programu GenMachine w rozwiązywaniu problemu optymalnej selekcji portfela. Ma również wykazać ścisłą korelację pomiędzy wartościami kryteriów prawdopodobieństwa (zysku) i ryzyka oraz portfeli wynikowych. Dane wejściowe zostały zaczerpnięte z przykładu przytoczonego w opracowaniu [5] Pawła Sewastianowa i Moniki Jończyk w celach porównawczych.

Zadanie zakłada, że inwestor dobiera optymalny portfel spośród pięciu znanych walorów. Oczekiwana stopa zwrotu każdego z walorów dana jest w postaci rozkładu Gaussa i przedstawiona na rysunku 4.24.

Rys. 4.24. Oczekiwana stopa zwrotu walorów C1, C2, C3, C4, C5 w postaci rozkładu Gaussa

Parametry charakterystyczne dla każdego z rozkładów podano w tabeli 4.1.

Tabela 4.1. Parametry charakterystyczne dla badanych rozkładów Gaussa

Walor Średnia arytmetyczna Wariancja
Ci 0,25 0,01125
c2 0,22 0,00750
c3 0,20 0,00750
c4 0,15 0,00500
c5 0,05 0,00250

Przejście od rozkładu Gaussa do liczby przedziałowej polega na odczycie wartości każdej funkcji reprezentującej stopę zwrotu, po znormalizowaniu do 1, w punktach przecięcia z wykresem funkcji g(x) = 0,01.

Rys. 4.24. Oczekiwana stopa zwrotu walorów C1, C2, C3, C4, C5 w postaci rozkładu Gaussa znormalizowanego do 1

Uzyskane wartości początku i końca każdego z przedziałów podano w tabeli 4.2.

Walor Początek przedziału Koniec przedziału
Ci -0,071 0,570
c2 -0,042 0,483
c3 -0,062 0,462
c4 -0,063 0,363
c5 -0,100 0,202

Tabela 4.2. Oczekiwana stopa zwrotu walorów C1, C2, C3, C4, C5 w postaci przedziałów

Optymalizowaną przez program GenMachine funkcją celu jest funkcja przedziałowa f (x) = x1 • Cj + gdzie xi..5 to zmienne sterujące, a C1..5 to stałe przedziały ostre. Populacja liczy 100 osobników, z których każdy reprezentowany jest przez wektor zmiennych sterujących w postaci liczb rzeczywistych [xi, x2, x3, x4, x5]. Operator selekcji turniejowej skonstruowany jest w ten sposób, że po obliczeniu wartości funkcji celu dla wszystkich genotypów bieżącej populacji, nadaje każdemu z nich rangę, dzięki zastosowaniu procedury sortowania szybkiego.

Procedura sortowania porównuje pary przedziałów poprzez obliczenie kryterium prawdopodobieństwa i kryterium ryzyka, a następnie zastosowanie agregacji addytywnej, tak jak zostało to opisane w podrozdziale 3.2 [cytowanej pracy magisterskiej].

Button: Add to Cart

Właśnie siedzę nad projektem sklepu internetowego, dla jednego z klientów, i tak mi przyszło do głowy czy znajdę jakieś materiały w Sieci poświęcone widoczności i czytelności przycisku Dodaj do koszyka. I bingo!

107 Add to Cart Buttons of the Top Online Retailers autorstwa Jasona Billingsleya, to galeria ponad stu przycisków z najczęściej odwiedzanych sklepów anglojęzycznych wraz z analizą statystyczną dotyczącą zarówno nazewnictwa (dla przykładu: Add to Cart to najczęściej używana formuła (58%), a Add to My Shopping Cart najrzadziej (0,9%); jak się okazuje sam Amazon używa niezbyt popularnego Add to Shopping Cart (4,5%)), jak i elementów graficznych przycisków (przykładowo ikona koszyka ma zastosowanie w 14,3% przycisków przeanalizowanych przez Billingsleya).

Galerii i analizom towarzyszy krótki tekst autora.

A dlaczego jednolita ikonografia oraz ujednolicone nazewnictwo w ramach ‚dodaj koszyka’ są tak istotne?

Właściwie funkcja ‚dodaj…’ jest tym dla świata e-commerce, czym cut (Wytnij ze swoją ikonką nożyczek) dla świata programów desktop – jest powszechna i często wykorzystywana przez użytkowników. Zidentyfikowanie gdzie się znajduje przycisk ‚dodaj’ w sklepie internetowym oraz zrozumienie funkcji tego przycisku – przy zachowaniu czytelnej formy komunikacji – są jednym z kluczy do sukcesu sklepu.

A może ktoś się pokusi o analizę buttonów w polskich e-sklepach?

***

W ramach tematyki buttonów, lekturę uzupełnią dwa teksty:

  • 7 Rules for Landing Page Optimization (chodzi o punkt 5)
  • i podejmujący ten punkt: Large Red Buttons? Oh My!
  • + dodatkowa galeria przycisków.

PS: A tak a propos sklepów internetowych, czy ktoś zapoznał się już z systemem Magento i ma wyrobioną na jego temat swoją opinię? Będę wdzięczny za komentarze w tej sprawie.

Projektowanie dla seniorów: czcionki

Jak popatrzeć na statystyki, rośnie grupa użytkowników powyżej 40-stego roku życia. Aspekty z projektowaniem rozwiązań dla nich związane są zarówno z przestrzeganiem standardów usability jak i accessibility.

Nie natrafiłem nigdzie w Sieci na opracowanie poświęcone projektowaniu dla osób w podeszłym wieku, więc sam postanowiłem coś w tej mierze napisać. Dzisiaj trochę statystyk i część poświęcona czcionkom.

Statystyki

2005 r.: Najwięcej użytkowników w Internecie to osoby w wieku od 15 do 24 lat, których udział wynosi 44,7%. Kolejną co do wielkości grupą są ludzie w średnim wieku: 25-39 lat. Stanowią oni 31,2% populacji użytkowników. Osoby w podeszłym wieku – od 40 do 59 lat – to 22,1% populacji. I wyniki te zamykają osoby po 60 roku życia z 2% udziałem w grupie [wg badań z września-listopada 2005 MillwardBrown SMG/KRC].

2006 r.: Jak pokazuje poniższa tabelka, wyniki rok później były podobne [badania przeprowadził Interaktywny Instytut Badań Rynkowych, źródło: Megapanel PBI/Gemius, październik 2006].

2007 r.: A oto pokazujące wzrost użytkowników w podeszłym wieku o blisko 5%, wyniki badań z okresu marzec/maj bieżącego roku [NetTrack SMG/KRC, za: IDG].

Czcionki

  • Wielkość czcionki: powszechnie uważa się, że treść zasadnicza powinna mieć wielkość przynajmniej 10 punktów (J. Nielsen & H. Loranger, „Optymalizacja funkcjonalności serwisów internetowych”, Wyd. Helion 2007, s. 247-249; T. Sachs & G. R. McClain, „Podstawy projektowania stron internetowych”, Wyd. Helion 2002, s. 107). Jednak przy tendencji do zwiększającej się rozdzielczości monitorów, na których oglądane są strony WWW, oraz biorąc pod uwagę pogarszający się wzrok osób starszych, jak i fakt, że w późniejszym wieku wzrok szybko się męczy, spokojnie jako standard można przyjąć tekst o wielkości 12 punktów.
  • Szeryfowe czy bezszeryfowe? Co to są szeryfy myślę, że każdy z czytelników UI Design wie, więc nie będę się tutaj wdawał w szczegóły. Osoby, które jednak nie wiedzą odsyłam do artykułu na Wikipedii.

    Powszechna opinia w kwestii stosowania czcionek szeryfowych i bezszeryfowych w Internecie jest taka, że czcionki szeryfowe nie nadają się do czytania z ekranów komputerów, pozostawiając pole do popisu czcionkom bezszeryfowym. To jednak nie jest prawdą.

    Od czasu powstania Internetu dużo się zmieniło. Stosowane kiedyś monitory CRT miały rozdzielczość 72 dpi; aktualnie rozpowszechnione panele LCD mają już rozdzielczość 96 dpi. Co za tym idzie, czcionki wyświetlane na współcześnie stosowanych monitorach są dużo czytelniejsze. Stąd coraz częściej stosuje się w projektach WWW czcionki szeryfowe, których, dzięki podwyższeniu rozdzielczości, czytelność znacznie się poprawiła.
    Co prawda wciąż niektórzy usabiliterzy (Nielsen) radzą wykorzystywać czcionki tylko w nagłówkach (wielkość czcionki 14 punktów i więcej), ale otarłem się gdzieś o opracowanie pokazujące, że z wiekiem zatracają się różnice w czytaniu z ekranów tekstów pisanych czcionką szeryfową i bezszeryfową (tylko źródła tego badania nie mogę sobie przypomnieć), w związku z czym osoby w podeszłym wieku z taką samą sprawnością czytają teksty napisany szeryfami, co bez szeryfów.

    Wygładzanie krawędzi czcionek (antyaliasing): Safari, bodajże jako jedyna przeglądarka internetowa, w zaawansowany sposób obsługuje antyaliasing. Jeśli wygładzanie krawędzi świetnie sprawdza się w przypadku grafiki, to w przypadku tekstu jest już pomyłką! Tekst z wykorzystaniem opcji wygładzania krawędzi jest znacznie mniej czytelny od tekstu bez obsługi antyaliasingu (Por. W. Williard, „Projektowanie stron WWW”, Wyd. Edition 2001, s. 162). Jeśli projektujecie dla użytkowników platformy Apple, miejcie to na uwadze.

  • Obrazki zamiast czcionki: NIE! Dlaczego? Bo użytkownicy z większą wadą wzroku nie będą mieli możliwości powiększenia napisów – wyświetlanie czcionki można powiększyć, obrazków nie. No chyba, że się skorzysta z opcji Zoom w przeglądarkach Opera oraz Internet Explorer 7.

    Inną, bardziej zaawansowaną metodą zastępowania czionek, jest sIFR, czyli Scalable Inman Flash Replacement

  • Punkty, piksele czy emy? Z interpretacją pikseli w ramach formatowania wielkości czcionki, wciąż ma problem Internet Explorer. Twórcy tej przeglądarki uznali, że stosowanie przez programistów WWW rozmiarów w pikselach, związane jest z określaniem przez nich wartości bezwględnych. W związku z tym tekst sformatowany w pikselach nie podlega możliwości powiększenia. Pozostaje formatowanie tekstu w punktach oraz, coraz częściej stosowane, w em-ach (Por. J. Beaird, „Artystyczne projektowanie stron internetowych”, Wyd. Powernet 2007, s. 133-135).
    Nie polecam zaś formatowania czcionek sposobem „kuloodpornym”, zaproponowanym przez Dana Cederholma (D. Cederholm, „Kuloodporne strony internetowe”, Helion 2006), przy pomocy słów kluczowych, takich jak: small, medium, large. Z moich doświadczeń wynika, że ze względu na niejednolitą interpretację znaczników, stosowaną przez różne przeglądarki internetowe, ten sposób zapisu nie sprawdza się (ale o tym przy innej okazji).
  • Kontrast – o tym przy okazji następnej części, w której będę pisał m.in. o kolorach, pamięci, motoryce.

Sklep internetowy

Uwarunkowania ekonomiczne

W czasach gwałtownego rozwoju Internetu, działalność gospodarcza wkracza w nowy etap rozwoju. Nowe możliwości jakie stwarza zasięg działania, powszechność oraz dostępność Internetu inspirują do zainteresowania się rozwojem biznesu na tej platformie. Szczególną dziedziną, w której jest możliwy szybki rozwój i poszerzenie podstawowej i tradycyjnej działalności jest handel, rozumiany zarówno jako wymiana pomiędzy partnerami jak i dostawcami a ich klientami. Rozwój małej i średniej przedsiębiorczości wymaga rozwiązań dostosowanych do potrzeb tego segmentu działalności komercyjnej. Rynek ten w krajach Unii Europejskiej czy też w Stanach Zjednoczonych jest określany jako SOHO (Small Office Home Office).

Podstawowym kryterium jest tu wielkość firmy, różnie rozumiana, często jako ilość zatrudnionych pracowników czy też wielkość generowanych przychodów, obrotów itp. Jedyną różnicą pomiędzy Polską a innymi krajami Europy Zachodniej jest właśnie skala według której następuje segmentacja. W Polsce przyjmuje się że średniej wielkości przedsiębiorstwo zatrudnia ponad dwudziestu pięciu pracowników. Jest to o rząd wielkości mniejsza liczba niż w innych krajach Unii Europejskiej. Analiza potrzeb takich firm wykazała, że podstawowym kryterium wyboru rozwiązań informatycznych wspierających i rozszerzających działalność podstawową są koszty zarówno zakupu, rozwoju jak i utrzymania systemów, oprogramowania i administracji. Społeczność internetowa jednoznacznie wykazuje ogromne zainteresowanie rozwojem oprogramowania i systemów OpenSource (opensource.org) zarówno opartych na licencji GNU GPL jak i BSD. Teksty tych dokumentów umieszczone są pod adresem opensource.org/1icenses

Przykładem systemów OpenSource jest np. Linux czy wiele innego doskonałego oprogramowania określanego wspólną nazwą GNU. Kolejnym elementem jest także cała rodzina Unix’owych sieciowych systemów operacyjnych *BSD takich jak FreeBSD (freebsd.org). NetBSD (netbsd.org). OpenBSD (openbsd.org). baz danych takich jak PostgreSQL (postgresq1.org), języków programowania jak PHP (php.net) i innych. Tendencje te ostatnio znalazły poparcie u „wielkich” rynku informatycznego. Sun wykupił i udostępnił na licencji GNU pakiet biurowy StarOffice, IBM przeniósł Linux’a na swoje platformy mainframe, Borland stworzył środowisko Delphi/Kylix do budowy uniwersalnych aplikacji dla środowiska Windows/Linux oraz udostępnił bazę InterBase itp. Powstała organizacja Free Software Foundation (fsf.org) wspierająca ten „ruch” w kierunku dalszego upowszechniania i popularyzowania tego trendu. Bazując na osiągnięciach społeczności internetowej w tej dziedzinie za podstawę realizacji systemu umożliwiającego małym i średnim firmom wkroczenie sferę e-biznesu przyjęto systemy bazujące na tego typu oprogramowaniu.

Podsumowaniem całości kodu jest fragment obsługujący przyjęcie i zrealizowanie zamówienia. W obecnym stadium rozwoju sklepu jest to realizowane poprzez wysłanie przyjętych informacji pocztą email do obsługującego pracownika. Trwają prace nad skonstruowaniem wygodnego i sprawnego w działaniu „koszyka” obsługującego komplet czynności związanych z realizacją zamówień. Obecnie wykorzystywany formularz także jest generowany dynamicznie przez skrypt napisany w PHP. Dane wprowadzane do formularza są sprawdzane. Testowane jest wypełnienie wymaganych pól, niezbędnych do podjęcia dalszych działań związanych z realizacja zamówienia.

Struktura bazy

Poniższe zestawienie jest wynikiem działania skryptu „99-struktura” generującego schematyczną i poglądową prezentację struktury tabel i przynależnych im indeksów w bazie danych eMarket. Listing ten prezentuje stan bazy po wykonaniu pełnego załadunku wszystkich tabel oraz wykonaniu skryptów aktualizujących i czyszczących.

Poniższy rysunek przedstawia proces wprowadzania danych na stronie formularza, tuż po wybraniu odnośnika ukrytego pod postacią ikony koszyka sklepowego.

Rysunek 10 — Formularz realizacji zamówienia.

Całość realizowanych działań związanych ze złożeniem zamówienia wykonuje poniższy kod.

Wnioski z pracy magisterskiej

Zastosowana metodologia zbiorów rozmytych daje możliwości stabilnego przeprowadzania analiz matematycznych dotyczących oceny jakości życia w poszczególnych województwach. Wykorzystanie technologii opisanej w pracy pozwoliło na sprawdzenie poziomu życia w różnych jego aspektach ujętych w kategorie. Z wygenerowanych wykresów można wywnioskować, że najwyższy poziom życia notuje się w województwach: Mazowieckim, Śląskim, Dolnośląskim, Małopolskim, Zachodniopomorskim i Opolskim. Z kolei najniższy poziom życia jest w województwach: Warmińsko-Mazurskim, Podkarpackim, Lubuskim, Kujawsko-Pomorskim.

Należy jednak pamiętać, że uzyskany wynik zależy od kilku czynników:

  • wyboru odpowiednich kryteriów szczegółowych: wybór innych kryteriów mógłby spowodować, że uzyskany wynik różniłby się od otrzymanego,
  • wyboru kryteriów ilościowych i unikanie kryteriów jakościowych: w przypadku kryteriów jakościowych duże znaczenie ma subiektywizm oszacowania, ominięcie tego problemu zwiększyło wiarygodność uzyskanych wyników,
  • uważne sporządzenie macierzy parzystych porównań: prawidłowe
  • oszacowanie co do stopnia ważności poszczególnych spowoduje, że wyliczenie rang będzie bardziej dokładne.

Warto zauważyć, że wykorzystaną metodę można zastosować w wielu dziedzinach np. do oszacowania wartości nieruchomości ,samochodu, do analizy rynku papierów wartościowych, w medycynie do oszacowania stanu zdrowia i w wielu innych dziedzinach.