Bogdan Miś: Kilka spraw technicznych

Print Friendly, PDF & Email

internet052016-10-25.

Jak zapewne Czytelnicy zauważyli, nasza witryna była cały niemal dzień (24-10, poniedziałek) nieobecna w Sieci. W poprzednich dniach też nieco „stękała”, wysyłając chcącym ją czytać irytujący komunikat „Internal server error”. Co się działo?

Otóż, po pierwsze, nie był to żaden atak hakerski, jak lubią się od razu domyślać zwolennicy teorii spiskowych. Nie przeszkadzali nam też żadni przeciwnicy naszej linii politycznej. Powody były czysto techniczne.

No i te powody wydają mi się na tyle ciekawe, że chciałbym im poświęcić kilka uwag. Kolegów informatyków proszę o łagodność: niektóre problemy za chwilę poupraszczam, być może dla fachowców nad miarę; z góry przepraszam – ale kultura informatyczna naszego społeczeństwa (pewno zresztą każdego…) niezbyt, niestety, odbiega w górę poziomem od kultury matematycznej.

Czyli – brutalnie mówiąc – jest bliska zeru. A chciałbym, by Szanowni Koledzy Humaniści coś jednak skumali, jak mawia młodzież.

Ktoś powie – ale jakoś z tą naszą ułomnością żyjemy, i to niektórzy całkiem nieźle? Fakt. Ale nie założyłbym się, że tak samo będzie za lat pięćdziesiąt. Raczej przeciwnie: założyłbym się, że bez tej kultury informatyczno-matematycznej za pół wieku przynależność do klasy średniej będzie mało prawdopodobna.

Ale to temat na całkiem inne rozważania.

Może więc to, co za chwilę państwo przeczytają, troszeczkę uczyni bardziej zrozumiałym ten trudny faktycznie do pojęcia dla laika wszechświat wirujących zer i jedynek, zwany Internetem.

Do rzeczy.

Witryna internetowa w istocie to właśnie potężny pakiet pozornie chaotycznie uszeregowanych zer i jedynek – a fizycznie impulsów elektrycznych i ich braków, przetwarzanych w określony sposób zarówno przez serwer – czyli komputer „nadający” do nas informacje o serwisie, jak i przez nasz komputer – stacjonarny, tablet czy smartfon, czym tam się posługujemy. Z grubsza biorąc, te dwie maszyny w trakcie naszego oglądania witryny, bez przerwy „gadają” ze sobą (w istocie używają w tej „rozmowie” sporej liczby pośredników, także będących komputerami…), wymieniając nieustannie właśnie określone ciągi impulsów; czy – jak woli matematyk – zer i jedynek.

Myli się więc ktoś, kto sądzi, że witryna internetowa dokładnie w rzeczywistości wygląda tak, jak ją oglądamy na naszych ekranach. Faktycznie nie ma tam żadnych obrazków ani nawet żadnych liter: na najniższym poziomie są właśnie tylko owe zera i jedynki. Miliardy i biliony cyfr.

Naturalnie, napisać coś dla komputera zrozumiałego w tej postaci – po prostu dziś się nie da. Podkreślam słowo dziś – bo blisko 60 lat temu, kiedy ja zaczynałem swoją przygodę komputerową, było zupełnie inaczej. Z początku dane i programy nimi zarządzające kodowano dokładnie tak: jako ciągi zer i jedynek. Ręcznie. Łatwo pojąć, że było to raczej żmudne działanie.

Stosunkowo szybko zaczęto sobie jednak życie ułatwiać przez używanie tekstu, który komputer odpowiednio interpretował. Pamiętam, że nasz XYZ – pierwszy polski komputer – interpretował na przykład napis MRHDS 0063 jako ciąg, złożony z 32 jedynek. Ale i to wkrótce przestało ludziom odpowiadać, bo w gruncie rzeczy niezbyt się różniło od pisania tych cholernych zer i jedynek „na piechotę”. Zaczęto więc używać do komunikacji z maszyną języków – jak to się mówiło – „wyższego poziomu”, w których już nie trzeba było używać skomplikowanych szyfrów, ale można było napisać na przykład po ludzku (na ogół: po angielsku) „dodaj A do B” i maszyna rozumiała.

Dziś to wszystko jest jeszcze prostsze (w sensie: bardziej zbliżone do naturalnego działania człowieka, co wcale nie znaczy „łatwe”).

A do „pisania” – nadal się tak mówi – witryn internetowych używa się nawet „gotowców”, w których trzeba tylko w odpowiednie miejsca powstawiać odpowiednie informacje i wszystko „robi się samo”. Dodam, że ludzka obsługa czegoś takiego najczęściej nie ma zielonego pojęcia jak to wszystko – i dlaczego – działa „na samym dole”. Na ogół wiemy teraz tylko tyle, że jak tu wrzucimy coś-tam-coś tam, to gdzie indziej otrzymamy coś innego. Dlaczego, jak? To już dziś „wie” tylko komputer.

No i ten programista, który napisał kiedyś-gdzieś ten ciąg instrukcji. Ale ten programista z reguły jest od nas oddalony o pół globu, albo już go w ogóle nie wśród żyjących. Trudno liczyć, że coś wyjaśni. Samemu trzeba główkować.

Jednym z takich systemów gdy idzie akurat o witryny internetowe – nawiasem mówiąc, dziś najpopularniejszym na świecie, którego używają miliony witryn – jest słynny WordPress, wykorzystywany również przez nasze „Studio Opinii”.

Jak taki system działa? Bardzo z grubsza rzecz ujmując, mamy tu (podobnie w innych podobnych systemach, jak Joomla, Drupal itp.) układ – czasami bardzo, bardzo wielu – tzw. baz danych. Jedna taka baza – to wszystkie teksty, jakie wprowadzamy do witryny; druga – obrazy (przy czym niektóre siedzą rzeczywiście w bazie na serwerze, o innych tylko serwer wie gdzie są, czyli „zna ich adresy”), trzecia – dźwięki, czwarta – informacje o autorach; i tak dalej. Niekiedy liczba baz idzie w setki, zaś liczba ich elementów – w dziesiątki czy setki tysięcy. U nas na przykład baza danych tekstów składa się już z ok. 10 000 artykułów, a baza komentarzy do nich – z blisko 100 000. Baza nazwisk autorów artykułów liczy kilkaset elementów, baza autorów komentarzy jest odpowiednio większa. Przez osiem lat się tego wszystkiego uskładało. I stale rośnie.

Te bazy są połączone i jedna z drugiej w określony sposób korzysta. Porozumiewają się między sobą (już zupełnie bez udziału człowieka)  w specjalnym języku zapytań i odpowiedzi; w przybliżeniu wygląda to tak, że kiedy wstawiamy na witrynę artykuł, to komputer wie, że element oznaczony jako tytuł ma wyglądać tak, śródtytuły inaczej, odstępy między akapitami mają być odpowiednie i tak dalej. System, czyli ów „gotowiec” (w naszym wypadku tak zwany szablon WordPressa) otrzymawszy do publikacji artykuł wysyła zapytanie do bazy z danymi o wyglądzie poszczególnych elementów i ich rozmieszczeniu – i stosuje się do otrzymanej odpowiedzi. I tak ze wszystkim: z obrazkami, dźwiękami, filmami…

To nie administrator systemu zatem powiada mu – powiedzmy – że ilustracja do artykułu ma w samym artykule mieć takie a takie rozmiary, zaś na stronie głównej – zupełnie inne (w każdym razie najczęściej), ale wszystkie te zalecenia realizuje sam system. Automatycznie. Ale tych pytań i odpowiedzi – choć człowiekowi trudno to sobie wyobrazić – padają w ciągu jednej sekundy tysiące i setki tysięcy. I wszystko to muszą przetworzyć serwer i nasz komputer. Jak ten układ będzie za słaby, to się po prostu udławi.

Używamy więc szablonu, który bazując na WordPressie (kto ciekaw, nazywa się on Best by MyTheme Shop) organizuje wstępnie naszą witrynę.  Ale tylko wstępnie: nie zapewnia on wykonywania przez nią mnóstwa funkcji. Decydując się na określony szablon wiemy mniej więcej, jak to będzie wyglądało w użyciu na ekranie. Ale tylko mniej więcej. Wiele funkcji witryny trzeba zapewnić używając specjalnych wtyczek (w żargonie informatycznym pluginów). W naszym wypadku jest tych wtyczek kilkadziesiąt.

Kilka przykładów: jedna z wtyczek – pierwsza z brzegu – nazywa się Accessibility Widget. Realizuje ona tylko jedną funkcję, której w szablonie WordPressa akurat nie ma: pozwala Czytelnikowi ustawić odpowiadającą mu wielkość tekstu. Inna – Comment Images Reloaded pozwala dodawać do komentarzy własne obrazki. Jeszcze inna – dajmy na to, Embedly – odpowiada za to, że w naszej witrynie zamiast zwykłego odnośnika do innej witryny pojawia się jej nieco zmodyfikowany obraz, taki swego rodzaju cytat. I tak dalej.

A każda wtyczka – to na ogół kolejna baza danych (żeby jedna!) w systemie i kolejne dziesiątki i setki zapytań w ciągu sekundy. I czasem serwer dostanie zadyszki…

Tak właśnie było w naszym wypadku.

Przyjrzeliśmy się sprawie nieco bliżej i okazało się, że kilka naszych wtyczek robi tak straszny ruch, że serwer czasami nie daje rady. Zidentyfikowaliśmy je – i zostały wyłączone. Niestety, odpowiadały one za pewne czynności miłe dla Czytelnika. Mianowicie trzeba było wyłączyć wtyczkę (najgorszą, ona ryła serwer najmocniej) zarządzającą polskim systemem dzielenia wyrazów na sylaby, nie dopuszczającą do nieeleganckiego kończenia wiersza (żeby na przykład akapit nie kończył się wierszem, w którym będzie tylko jedno słowo) i parę innych takich rzeczy. Bez tego artykuł będzie wyglądał gorzej – ale nie ma rady.

Inną wtyczką, którą z tych samych względów trzeba było wyłączyć, była wtyczka o nazwie Linkify text. Używaliśmy jej do automatycznego łączenia nazwisk naszych autorów z informacjami o nich; teraz trzeba będzie to robić ręcznie. I wreszcie musieliśmy też wyłączyć wtyczkę, która pokazywała na pierwszej stronie liczbę komentarzy, jakimi zechcieli Czytelnicy opatrzeć publikowane artykuły. Wiem, że tę informację bardzo państwo lubili, bo wskazywała ona na artykuły najciekawsze czy najbardziej kontrowersyjne; może się uda ją włączyć ponownie, ale nic teraz obiecać nie mogę.

Trochę to wszystko trzeba robić „na nosa”, na chybił-trafił (patrząc oczywiście fachowym okiem na rozmaite dane liczbowe), eksperymentując. Pamiętajmy zaś, że serwer obsługuje kilka, kilkanaście czy nawet więcej jeszcze rozmaitych witryn; a jaka jest pewność, że nie wchodzą one ze sobą w jakieś interakcje? I jakie?

Ale to może jest jeden z uroków informatyki, że trzeba mieć tego „nosa”. Czyli odpowiednią wiedzę i doświadczenie. W końcu, za to właśnie niektórym nieźle płacą. Ale są i tacy, którzy to po prostu lubią. Jak grę w pokerka, na przykład. Albo słuchanie Bacha.

Bogdan Miś

VN:F [1.9.22_1171]
Oceń artykuł
Rating: 10.0/10 (12 votes cast)
VN:F [1.9.22_1171]
Rating: +12 (from 12 votes)
Bogdan Miś: Kilka spraw technicznych, 10.0 out of 10 based on 12 ratings

8 komentarzy

  1. PIRS 2016-10-25
    • Stary outsider 2016-10-27
  2. j.Luk 2016-10-25
  3. otoosh 2016-10-25
    • BM 2016-10-25
  4. BM 2016-10-25
  5. andrzej Pokonos 2016-10-27
  6. PK 2016-10-27
WP Twitter Auto Publish Powered By : XYZScripts.com