Z klocków
Oczywiście nikt przy zdrowych zmysłach (no, może poza niektórymi zwolennikami oprogramowania Open Source) nie będzie zachęcał Kowalskiego do kompilowania aplikacji z kodów źródłowych. Znacznie prostszą metodą jest składanie programu niczym z klocków – udostępnianie szkieletu narzędzia oraz modułów, które rozszerzają jego funkcjonalność (zwanych plug-inami bądź wtyczkami). Sposób ten ma mnóstwo zalet, poczynając od dania użytkownikom wpływu na kształt aplikacji, poprzez zmniejszenie “zasobożerności” aplikacji, aż po zyskanie darmowej armii programistów. Ta ostatnia okoliczność zachodzi w przypadku, gdy udostępniona zostaje specyfikacja, według której można własnoręcznie tworzyć rozszerzenia.
Modelowym przykładem programu o budowie modułowej jest znany komunikator Miranda. Bez wyposażenia go w plug-iny nie ma on żadnej wartości – po prostu nie działa. Dopiero zainstalowanie odpowiednich wtyczek (kilka dostarczanych jest wraz z pakietem instalacyjnym) “ożywia” tę aplikację, pozwalając na działanie zgodne z założonym celem. Także twórcy przeglądarek WWW wykorzystują ten pomysł, choć z różną intensywnością. Pierwszymi z brzegu przykładami są chociażby znane wszystkim Internet Explorer czy Netscape Navigator – od dawna obsługują one wtyczki, choć ich wybór nie powala na kolana. Jedną z najczęściej wykorzystywanych, choć nie zawsze zdajemy sobie z sprawę z tego, że mamy do czynienia z wtyczką, jest dodatek Flash Player firmy Macromedia. W niniejszym artykule skupimy się jednak na dwóch innych programach, w których wykorzystano plug-iny w znacznie szerszym zakresie.
Wszędobylskie wtyczki
Stosunkowo młoda (choć mogąca się pochwalić znamienitymi przodkami) przeglądarka Mozilla Firefox jest świetną egzemplifikacją programu o architekturze wtyczkowej. W przeciwieństwie do wspomnianej Mirandy aplikacja ta zaraz po instalacji jest w pełni funkcjonalną przeglądarką WWW. Jednak aby zadowoliła wymagającego użytkownika, musi on doinstalować kilka lub kilkanaście wtyczek zwanych w tym wypadku rozszerzeniami (ang. extensions). Ma to naturalnie swoje wady, chociażby konieczność poświęcenia czasu. Jednak z drugiej strony przy odrobinie wysiłku uzyskać możemy przeglądarkę niemalże idealnie dostosowaną do naszych potrzeb.
Firefox | Maxthon | ||
Przeglądanie stron | Przeglądanie stron | ||
Tabbrowser Extensions 1.11.2004092801 | Zakładki | TabTree 1.61 | System zakładek wraz z przedstawieniem ich struktury w postaci drzewa |
Paste and Go 0.4.1 | Wklejanie adresu strony | Kill Flash Ad and Flying Ad 1.0 | Usuwanie reklam (m.in. flashowych) |
Gesty 1.0 | Obsługa gestów myszą | Restrict Popup Size 1.00 | Ograniczenie wielkości pop-upów |
Mozilla Calendar 1.4 | Kalendarz z alarmem | WeekCalendar 1.17 | Zaawansowany kalendarz |
Adblock 0.5.2.039 | Ulepszona wersja wbudowanego mechanizmu blokowania reklam | DeFloatAds 0.5 | Usuwanie “pływających” reklam |
FlashBlock 0.9 RC | Blokada reklam flashowych | Remove Floating Ads 1.10 | Usunięcie reklam |
Nuke Image 0.3 | Usuwanie wskazanego obrazka | Linkages Preview 1.0 | Prezentacja w postaci miniaturek stron, do których prowadzą odsyłacze z danego dokumentu |
IE View for Windows 0.83 | Otwarcie wskazanego dokumentu HTML w Internet Explorerze | MyStyle 1.2 | Wyświetlanie strony WWW w zdefiniowanym stylu |
Text Zoom 1.6.0 | Powiększenie tekstu na stronie | InlinePreview 1.2 | Pokazanie w małym okienku miniatury strony, do której prowadzi wskazany odsyłacz |
Bezpieczeństwo | Bezpieczeństwo | ||
CookieCuller 1.1.0 | Narzędzie do zarządzania plikami cookie | View Cookie 1.0 | Wyświetlenie “ciastek” związanych z odwiedzaną witryną |
xKiosk 0.6 | Pasek narzędzi do usuwania danych (haseł, cache’u itp.) | Remove Link Trackers 1.32 | Usuwanie “śledzących” fragmentów odsyłaczy |
SecurePassword Generator 0.5 | Generator haseł | Show Actual Domain 1.0 | Wyświetlenie domeny aktualnej strony (zabezpieczenie przed spoofingiem) |
Permit Cookies 0.2.1 | Proste zarządzanie plikami cookie | IPLookup 1.0 | Narzędzie typu whois i tracert |
x 0.6.3 | Plug-in podobny do wtyczki xKiosk | Anonymous 1.0 | Automatyczne wypełnianie pola formularza słowem “anonymous” |
Różne | Różne | ||
Bandwidth Tester 0.4 | Testowanie prędkości naszego łącza internetowego | W3C Validate 1.0 | Sprawdzanie poprawności budowy strony |
GMailCompose 0.5.3 | Wysyłanie e-maili z wykorzystaniem konta Gmail | NormalScrollbars 1.1 | Przywracanie standardowych pasków przewijania |
CuteMenus 0.4 | Dodawanie ikon do menu | Free Memory 1.0 | Zwalnianie określonej ilości pamięci operacyjnej |
Statusbar Clock 1.6.4 | Prosty zegar umieszczany na pasku stanu | MWDictionary 2.2 | 3 plug-iny szukające określonego słowa w internetowych słownikach |
User Agent Switcher 0.6 | Łatwa zmiana identyfikatora przeglądarki wysłanego do serwera WWW | Translate Page 1.0 | Tłumaczenie strony na język angielski z wykorzystaniem mechanizmu Babel Fish |
Web Developer 0.8 | Menu i pasek narzędzi przydatnych dla twórców stron | Get a Microsoft Knowledgebase Article 1.0 | Wyszukiwanie artykułów w microsoftowej Bazie Wiedzy |
BugMeNot 0.6 | Łatwy dostęp do bazy haseł ze strony Bugmenot.com | InvertPage 1.0 | Inwersja kolorów strony |
Mozilla Amazon Browser (MAB) 1.2.2 | Wyszukiwanie w sklepie Amazon | Word Counter 1.1 | Zliczanie wyrazów w zaznaczonym tekście |
Macro Editor 2003.1223 | Narzędzia do edycji makr | Check Page Size 1.0 | Wyświetlenie “ciężaru” aktualnie wyświetlanej strony |
FoxyTunes 0.69 | Obsługa wielu odtwarzaczy multimedialnych z poziomu przeglądarki | ResizeWindow 0.3 | Zmiana rozmiaru okna na standardowy |