Dziś jeden z naszych użytkowników zwrócił mi dyskretnie uwagę, że nasz regulamin nie określa w sposób jasny (w zasadzie to nie określa w ogóle), jak na forum należy zamieszczać zdjęcia. Tymczasem zdarzało mi się już, grzecznie upominać niektórych użytkowników w tej sprawie. Pomimo, że nie miałem ku temu żadnych podstaw czysto regulaminowych, to działałem w dobrej wierze mając na celu dobro forum, a ściślej rzecz biorąc jego sprawne działanie.
Aby na przyszłość rozwiać wszelkie wątpliwości chciałbym żebyśmy wypracowali tutaj pewne reguły, które następnie umieścimy w regulaminie jako wytyczne dotyczące zamieszczania na forum zdjęć. Od tego momentu zaczną one oficjalnie obowiązywać wszystkich, przez co nie będzie już wątpliwości, co można a czego nie.
Geneza, a więc dlaczego zdjęcia mogą stanowić problem?
Zakładając nasze domyślne ustawienia na forum. Do każdego postu można dołączyć 10 załączników, z których każdy może mieć 256kb. W tym konkretnym przypadku przyjmujemy że tymi załącznikami są zdjęcia. Przynajmniej w teorii, jeden post może zatem zawierać nawet do 2.5MB zdjęć. Standardowo wątki dzielone są na strony, po 10 postów każda. Jeśli więc zdarzy się sytuacja w której 10 kolejnych postów będzie zawierało maksymalną ilość zdjęć o maksymalnym rozmiarze. Mamy do wyświetlenie stronę, o wadze 25MB.
Jak to wygląda z punktu widzenia pojedyńczego czytelnika?
Taka strona, na moim łączu o przepustowości 4Mbps będzie ładowała się w około 50 sekund. Jeśli ktoś używa wolniejszego łącza, dajmy na to bardzo ostatnio popularnego 1Mbps, czas ten wydłuży się do prawie 3.5min. Co mają powiedzieć Ci, którzy mają łącza wolniejsze? Dla nich czas ładowania strony może wydłużyć się do 5 i więcej minut. Sytuacja dodatkowo pogarsza się, gdy łącze czytelnika jest obciążone innymi zadaniami. Przeglądanie forum w takiej sytuacji staje się co najmniej niewygodne.
Jak to wygląda z punktu widzenia serwera?
Jeśli na dana stronę zacznie przeglądać dajmy na to 10 użytkowników, z których każdy będzie dysponował łączem równie szybkim co moje. To trzeba będzie obsłużyć ich strumieniem danych o przepustowości 40Mbps. Jak zapewne zdajecie sobie sprawę, nasze forum nie jest jedynym, które działa na tym serwerze. Jest ich tutaj więcej. W chwili obecnej ten serwer obsługuje około 40 różnych stron i forów dyskusyjnych. Tak więc z punktu widzenia serwera problem tylko się zwielokrotnia.
Oczywiście wartości jakie podałem, są mocno zawyżone. Cały przykład jest przejaskrawiony. Niemniej w skali całego serwera, ruch na tym poziomie jest jak najbardziej możliwy. Bywają takie godziny, że wychodzi z niego 50 i więcej Mbps. Oczywiście zdarza się to dość rzadko i tylko w godzinach szczytu. Średnio ruch nie przekracza 10Mbps.
Reasumując. Zamieszczanie dużej ilości zdjęć w postaci załączników może w skrajnym wypadku doprowadzić do przeciążenia serwera, czego konsekwencją jest znacznie obniżenia komfortu przeglądania forum (wydłużenie ładowania poszczególnych stron) i co równie ważne także innych stron zamieszczonych na tym serwerze. Do takiej sytuacji oczywiście dopuścić nie możemy.
W jaki sposób można go rozwiązać?
Musimy wypracować zasady zamieszczania zdjęć, dzięki którym nie dojdzie do sytuacji opisanej powyżej. Dla porządku muszę także opisać w jaki sposób do tej pory można było zamieszczać zdjęcia. Znane mi są w tej chwili trzy takie sposoby. Jeśli ktoś zna kolejne, proszę o ich dopisanie.
1. Wrzucamy zdjęcia na "serwer zdjęć", a na forum umieszczamy odnośniki do nich w postaci miniaturek. Przez "serwer zdjęć" rozumiem oczywiście imageshacka lub jego odpowiedniki np. polski fotosik. Z punktu widzenia administracyjnego, jest to najlepsze rozwiązanie najmniej obciążające serwer forum. Niemniej z punktu widzenia użytkownika zamieszczającego zdjęcia najbardziej kłopotliwe. Zdjęcia trzeba najpierw wstępnie obrobić, następnie załadować na serwer, a ostatecznie dopiero podać odnośniki do nich w treści wiadomości. Każdy czytelnik, żeby zobaczyć daną fotkę, musi na nią specjalnie kliknąć. Faktycznie to rozwiązanie pozostawia wiele do życzenia - niemniej osobiście uważam, że jest najlepsze. W ten sposób sam wrzucam zdjęcia.
2. Bardzo podobny do tego poprzedniego. Procedura zamieszczania zdjęcia wygląda niemal identycznie, z tym, że zamiast miniaturek zamieszczamy w treści postu na forum gotowe zdjęcia. Z technicznego punktu widzenia nadal są one ładowane z zewnętrznego serwera (tym samym odciążając nasz), ale czytelnik nie musi na nie specjalnie klikać po to, żeby je obejrzeć. Dla niektórych jest to ewidentne ułatwienie. Niestety dla innych może być istotną wadą. Każdemu przeglądającemu dany wątek te zdjęcia będą musiały się załadować, nawet gdy nie jest nimi zainteresowany.
3. Fotki nadal trzeba obrobić aby je umieścić na forum, niemniej nie używamy do ich przechowywania zewnętrznego "serwera zdjęć", tylko wbudowanego w forum mechanizmu załączników. Dla potencjalnych zamieszczających zdjęcia jest to rozwiązanie najprostsze. Odpada przecież całą procedura ładowania zdjęć na "serwer zdjęć" i niezbyt wygodne przyklejanie odnośników do nich do treści postu. To z techniczno administracyjnego punktu widzenia, jest to rozwiązanie najgorsze. To właśnie ono w bezpośredniej konsekwencji może doprowadzić do problemów opisanych przeze mnie wyżej.
Dlaczego uważam, że sposób numer 1 jest najlepszy?
Po pierwsze unikamy obciążenia obrazkami serwera forum, co jest naszym pierwotnym zamiarem. Po drugie potencjalnym przeglądającym korzystającym ze słabszego łącza wątek załaduje się szybciej, przez to że zamiast zdjęć pełnych rozmiarów początkowo załadują się miniaturki. Po trzecie, unikniemy obciążania własnego łącza podczas przeglądania wątku, czy zwyczajnej dyskusji. Gdyby zdjęcia były podlinkowane na stałe, to przy każdej odpowiedzi/odwiedzinach w danych wątku musiały by zostać załadowane.
Niezależnie od tego, które rozwiązanie wybierzemy. W przypadku punktu 2 i 3 będziemy musieli dodatkowo doprecyzować, ile zdjęć można zamieścić w jednym poście, jaki będą one mogły mieć dopuszczalne rozmiary zarówno w kilobajtach i co ważniejsze w pikselach. Nikomu chyba tłumaczyć nie muszę, co się stanie jeśli ktoś zechce bezpośrednio w wątku zmieścić zdjęcie o rozmiarach 3000x2000 pikseli

Dla porządku proponuję następujące wartości, które moim zdaniem powinniśmy przyjąć:
1. Rozmiar zdjęcia nie powinien przekraczać 100kB dla metod 2 i 3 i 500kB dla metody 1.
2. Rozdzielczość zdjęcia nie powinna być większa niż 1024x768 pikseli (w najpopularniejszej obecnie u użytkowników Polskiego internetu rozdzielczości 1280x1024 - a więc takiej stosowanej na 17 i 19'' monitorach LCD, fotka wyświetli się w całości nie tworząc bardzo niewygodnego poziomego paska przewijania) dla metody 2 i 3, oraz 2048x1536 dla metody 1.
3. Ilość załączonych zdjęć na post nie powinna przekraczać 5 dla metody 2 i 3 oraz 20 dla metody 1, gdy zajdzie taka konieczność, można napisać więcej niż jeden post. Skróci to natomiast długość wyświetlonego na stronie wątku.
Uf, to tyle ode mnie dziś. Oczekuję od was rzeczowej dyskusji na ten temat
