Archiwum artykułów: Koncepcje

Attention economy

Attention economy to nowy termin określający następujące zjawisko: gdy robisz coś na komputerze, można to rejestrować i wykorzystać. Gdy klikasz (lub nie klikasz) dany odnośnik, gdy setki razy dziennie szukasz czegoś w Google, gdy zwracasz lub nie zwracasz uwagi na reklamę - można z tego wyciągać informacje, potencjalnie cenne biznesowo.

Proponuję zajrzeć do hasła Attention economy na Wikipedii oraz na stronę Attention Trust.
Generalnie chodzi o to, że:

  • ludzie mają ograniczoną ilość czasu i uwagi, którą mogą czemuś lub komuś poświęcić. Można więc zastosować prawa ekonomii do wszystkich informacji, które “domagają się” tej uwagi od ludzi (porównaj z przesłaniem Bit Literacy!)
  • to, co robimy, powinno “należeć do nas” - a obecnie może być wykorzystywane przeciwko nam, bez naszej wiedzy, w sposób, którego nie pochwalamy; stąd idea AttentionTrust.org.

Konkretniej, chodzi na przykład o to, że jeśli Google zarabia dużo pieniędzy na wiedzy o tym, czego ja (i inni ludzie) szukamy, to może Google powinien się z nami dzielić zarobkami. Albo jeśli oglądam reklamy, a nie pomijam ich na różne sposoby, to ma to jakąś mierzalną wartość i powinienem zostać na to bezpośrednio nagrodzony.

W tym temacie jest spam, statystyki internetowe, dane, jakimi dysponują wyszukiwarki, świat reklamy i leadów (właściwie to duży kawał marketingu podpada pod “lupę” AttentionTrust, o ile dobrze rozumiem ich intencje).

Ciekawe, co z tego się wykluje.

Byłoby naprawdę zabawne, gdyby każdy internauta miał udziały w dochodach z reklam, które są targetowane dzięki jego własnemu zachowaniu i informacjom, które o sobie podał.

No i jeszcze dłuższy artykuł na temat attention economy na bardzo popularnym blogu Read/Write Web. Do którego pewnie już część z Was dotarła wpisując w google tytuł tego wpisu.

Interaktywne kino przyszłości

Dzisiaj znów trochę pomarzę. Wyobraźcie sobie, że siedzicie w kinie. I macie wpływ na to, co widzicie - wpływ na punkt, z którego obserwuje się akcję.

Dzisiejsze kino to zlepek często zaledwie kilkusekundowych ujęć wybranych przez autorów filmu, tzn. perspektywa jest narzucona. (To pewnie ma wpływ na atrakcyjność kina - umiejętnie dobrany zlepek jest angażujący.)

Chciałbym, żeby było możliwe coś takiego: jest sobie dwóch bohaterów, którzy rozmawiają. Raz zbliżenie na jednego, raz na drugiego. Mówią, mówią. Jeden gdzieś chodzi, czasami widzimy obu z boku. Siedzą na fotelach w jakimś pokoju, w tle widać regał i okno. W “moim” interaktywnym kinie mamy następującą możliwość - przełączamy widok tak, że widzimy to, co jeden z tych bohaterów - widzimy jego oczami (jak w grze First Person Perspective). Jeśli bohater błądzi wzrokiem np. po ubraniu tego drugiego, będziemy to wiedzieć. O ile inni widzowie nie zrobią tego samego, oni oglądają dalej wszyscy to samo, my widzimy coś innego.

Trochę bardziej skomplikowany przykład. Jakaś wartka akcja - pościg po mieście. Na przykład taki, jak w filmie Ronin, gdy postaci grane przez Reno i De Niro ścigają się (pod prąd) z terrorystą. Scena bardzo emocjonująca i efektowna.

Jeśli chcemy, możemy przełączać do woli widok np. na widok z samochodu uciekających do tyłu, albo widok z lotu ptaka, który pokazałby, jak to wygląda rzeczywiście na ulicach miasta.

Teraz - co to właściwie daje?

Idziemy do kina na nowy film. Kilkaset osób domyślnie ogląda ten sam film, wersję taką, jaką znamy dzisiaj, ale jeśli widzowie mają taką ochotę, to w ciągu tych dwóch godzin każdy ogląda trochę inną wersję kina. O wiele bardziej angażujące przeżycie!

Oczywiście, producent filmu ma niełatwe zadanie, bo obecna technika produkcji wyklucza możliwość użycia czegoś takiego. Poza tym skąd ludzie mieliby wiedzieć, na co i jak i kiedy przełączać widok? Co w momencie zmiany sceny? I tak dalej… i tak dalej…

Silniki 3D w grach komputerowych do pewnego stopnia na to pozwalają, wystarczy popatrzeć na przerywniki w starej już (ponad 5 lat) grze Warcraft III. Oczywiście jakość jest jeszcze nieporównywalna.

Zakładam, że to będzie możliwe w kinie Hollywoodzkim - i to za najdalej kilkanaście lat. Czy będzie opłacalne - no nie wiem. Jeśli przyjmiemy, że taki pomysł oznacza też, że z innej perspektywy można oglądać sceny:

  • batalistyczne (kino historyczne),
  • łóżkowe,
  • pojedynków i większych starć w filmach akcji i science fiction…

…oraz jeśli przyjąć, że producenci mogą umieszczać następujące elementy potęgujące “doznania”:

  • różne ścieżki dźwiękowe dla różnych “miejsc” patrzenia,
  • możliwość stworzenia “wirtualnego” bohatera (ducha) chodzącego swobodnie po planie i podpatrującego akcję, także drugoplanowych bohaterów (którzy nagle mają zupełnie inną rolę do odegrania),
  • możliwość nagrania swojej wersji “oglądania” filmu i konkursy dla najciekawszych “modów” do filmów (!)…

…to nie wydaje mi się to takie nieprawdopodobne komercyjnie i sam z radością zagłębiłbym się w taki świat fikcji.

Cofnij wysłanego emaila

Jakiś czas temu pisałem o przypadkowym wysłaniu emaila i o tym, jak można by sobie z tym poradzić. Chodziło o to, że czasem wyśle się maila do niewłaściwej osoby albo maila niedokończonego (skrót klawiaturowy), czy też maila bez załącznika. W dyskusji szukaliśmy rozwiązania wewnątrz samego programu pocztowego.

Jest jeszcze druga metoda. Można wbudować w protokół wysyłania poczty mechanizm “undo”!

Działa to tak: w chwili, gdy wysyłam email, mój program pocztowy dostaje od serwera pocztowego jednorazowy (losowy) token, który zostaje też przekazany dalej razem z samym listem w jakiejś postaci.

W programie pocztowym na liście wysłanych wiadomości mam możliwość cofnięcia danego listu. Gdy kliknę cofnij, następuje wysłanie tokena “dowodzącego”, że to ja wysłałem ten list, tj. mam prawo go cofnąć.

Ten sygnał anulowania listu zostaje dostarczony do serwera pocztowego odbiorcy. Jeśli tam list nie został jeszcze pobrany (serwer wie, czy list był czy nie był pobrany), serwer odbiorcy może być miły i przyjąć prośbę o anulowanie listu - w takiej sytuacji list zostaje skasowany. Odbiorca nigdy nie dowiaduje się, że coś takiego miało miejsce. Nadawca dostaje potwierdzenie, że list został anulowany (to ważne - chodzi w końcu o dobre samopoczucie nadawcy właśnie).

Jeśli odbiorca już pobrał list, nadawca dostaje informację, że niestety, odbiorca zdążył pobrać tę wiadomość.

Nie wiem, czy takie coś jest możliwe w tej chwili - nie znam dostatecznie dobrze konstrukcji serwerów pocztowych ani protokółu SMTP - ale podejrzewam, że da się to zrobić tak, aby tylko nadawca lub dowolny serwer “po drodze” mógł anulować list, a nie ktokolwiek inny. (Czyli ja nie mogę anulować cudzego listu - to podstawowe zabezpieczenie.) Dowolny serwer pocztowy “po drodze” i tak może zrobić to, co chce, z danym listem, więc nie ma problemu zaufania do serwera z powodu anulowania.

Implementujemy to i voila! Można cofać wysłane emaile. No to hop, gdzie jest problem, z powodu którego takiego mechanizmu do dzisiaj nie ma?

Przypadkowe wysłanie emaila

Zdarza się, że osoba pisząca e-mail wyśle go przypadkowo za wcześnie (gdy nie jest ukończony) lub do niewłaściwej osoby.

Za wcześnie - zazwyczaj wtedy, gdy przez przypadek wciśnie się skrót klawiaturowy wysyłający wiadomość.

Do niewłaściwej osoby - gdy podczas wyboru odbiorcy z listy używane są podpowiedzi z bazy adresowej (autouzupełnianie) lub wybiera się odbiorcę z listy i kliknie np. o pozycję za nisko.

W obu przypadkach nadawca jest zirytowany lub przestraszony reakcją drugiej strony; w przypadku działalności firmowej może to być kompromitacja przed klientem czy współpracownikiem. Ponieważ jedno lub drugie zdarza się wbrew pozorom dość często, zastanawiam się, co można na to poradzić.

Obecnie widzę jedną możliwość: gdy ktoś uruchomi wysyłanie, wiadomość nie jest wysyłana od razu - nie jest nawet nawiązywane połączenie z serwerem. Użytkownik może pracować dalej normalnie, natomiast np. na dole ekranu pojawiłoby się dodatkowe okienko (warstwa) z “odliczaniem”, np. 10 sekund. Jeśli program i tak ma własne okno wysyłania wiadomości, jest ono wzbogacone od taki licznik.

W ten sposób użytkownik ma więcej czasu, aby zorientować się w sytuacji i anulować wysyłanie (nie jest to zazwyczaj możliwe np. w Thunderbirdzie, bo wysłanie krótkiego listu trwa nawet ułamek sekundy). Jeśli w tym okienku-komunikacie pokaże się dodatkowo odbiorcę listu (bez tematu, bez treści - tylko odliczanie i odbiorca), to gdy jest on niewłaściwy, istnieje dodatkowa szansa, że zauważona zostanie pomyłka w postaci niewłaściwie dopasowanego odbiorcy.

Wydaje mi się, że sytuacji, w których konieczne jest natychmiastowe wysłanie listu, jest jeszcze mniej. Taki mechanizm przeszkadzałby jednak wówczas. W ostateczności można dodać odpowiedni przycisk “przyspieszający” odliczanie.

Czy widzicie jakieś wady takiego mechanizmu z kilku(nasto) sekundowym odliczaniem? Czy użytkownicy zrozumieliby, po co to jest? Czy rzeczywiście pomogłoby?

Może jest już stosowane w jakimś ze znanych Wam programów pocztowych? A może ktoś z Was zna C i kod Thunderbirda na tyle, aby móc dodać taki mechanizm na próbę?

Prostsze CAPTCHA

CAPTCHA to obrazek z powyginanym, niełatwym do odczytania tekstem, który jest używany jako zabezpieczenie przed automatami w formularzach zakładania kont czy dodawania komentarzy w różnych serwisach. Robert Drózd przygotował pół roku temu fajny opis tego mechanizmu. Uzasadnia między innymi jego wady.

Jeśli jednak konieczne jest zastosowanie CAPTCHA, można spróbować zwiększyć jego wygodę. Zazwyczaj mechanizm polega na pokazaniu kilku liter lub liter i cyfr na obrazku. Użytkownik musi jest wpisać w pole tekstowe. Jeśli jest to to samo, co na obrazku - świetnie. Jeśli nie - powtórka.

Główny zarzut od większości ludzi to niska czytelność tekstów. Najczęściej jednak tylko niektóre znaki są mało czytelne. Mechanizm weryfikacji może zatem zrelaksować wymagania: wpisane przez użytkownika słowo jest akceptowane, jeśli znajdzie się w nim np. co najmniej 5 z 7 znaków takich, jak w oryginale, w odpowiedniej kolejności. Dokładniej: jeśli po wyjęciu 2 znaków z 7 wpisanych przez użytkownika otrzymujemy dobry podciąg oczekiwanego hasła, to akceptujemy wpis.
Dlaczego to może zadziałać lepiej?

  • człowiekowi powinno być znacznie łatwiej trafić 5 z 7 niż maszynie. Maszyna przy rozpoznawaniu obrazu ma obok problemów z rozpoznaniem, jakie są to konkretne litery, jeszcze problem z rozpoznaniem, gdzie litery właściwie w ogóle są (gdzie się zaczynają, gdzie kończą) — choć to już zależy od postaci obrazka
  • jeśli człowiek się pomyli, to najprawdopodobniej nie w kolejności, a w odczytywaniu poszczególnych liter. Innymi słowy, jeśli np. hasłem jest abcdefg, użytkownik może wpisać abodetg, natomiast kolejności jako takiej raczej nie zamieni.
  • można manewrować wymaganą precyzją (np. 3 z 6 — bardzo łagodny wymóg), wciąż zachowując dużą liczbę kombinacji. Może można nawet wprost napisać: “podaj co najmniej 3 litery z tego słowa, nie zmieniając ich kolejności”…

Jedynym ryzykiem jest to, że i maszynom odczytującym taki tekst z obrazka jakimiś sprytnymi algorytmami będzie trochę łatwiej. Jednym ze skutecznych mechanizmów dekodowania takich zabezpieczeń jest PWNtcha.
Ach, i jeszcze jedno — moim zdaniem należy ignorować wielkość liter w CAPTCHA. Podwojenie liczby znaków nie wpływa znacząco na skuteczność zabezpieczenia, a czasami zwiększa ryzyko pomylenia liter przez człowieka (np. D i O łatwiej pomylić niż d i o).

Czy ktoś z Was zna mechanizm analogiczny do CAPTCHA, który można by podsunąć w formularzu, aby zweryfikować, czy to człowiek, czy maszyna go wypełnia?

Czego brak bibliotekom

Wyobraźmy sobie bibliotekę uczelnianego instytutu, albo nawet główną bibliotekę uczelni.

Czy jest jakiś problem związany z oprogramowaniem takiej biblioteki?

Studenci nie mają problemów z wybraniem czy zamówieniem książki, wyszukiwanie zazwyczaj jest dobrze zrobione. Problem, o którym słyszę bardzo często, polega na tym, że mnóstwo tych ważnych książek dostępne jest w bardzo niewielkiej liczbie egzemplarzy. Na przykład w jednym egzemplarzu.

Wydawało mi się, że niewiele można na to poradzić (poza wprowadzaniem drakońskich reguł wypożyczania, np. na co najwyżej 1 dzień albo tylko do czytelni)… wczoraj jednak pomyślałem, że może warto by po prostu pokazywać w systemie bibliotecznym dane kontaktowe osoby, która daną książkę wypożyczyła. Dzięki temu zawsze w pilnych sprawach można by się zdać na dobrą wolę tych szybszych: zadzwonić czy wysłać e-mail, prosząc o możliwość wypożyczenia książki na kilka dni.

Częściowe rozwiązanie tego typu już widziałem, natomiast nie słyszałem o bibliotece, która by wdrożyła taki system (wypożyczając książkę na dłużej niż kilka dni zgadzasz się “niejawnie” na dostęp do innych klientów biblioteki do Twoich danych kontaktowych, chyba że istnieje chociaż jeden wolny egzemplarz tej książki w danej chwili).

Pojawiają się oczywiście problemy: podejrzenie o “wspieranie” w ten sposób nielegalnego kopiowania książek, kwestia prywatności (możliwe nadużycia takiego systemu), wiarygodności danych kontaktowych. Jeśli jednak istnieją wspólne trudno dostępne zasoby, to chyba warto się nimi dzielić… podejrzewam, że wiele osób zaniedbuje po prostu swoje konta biblioteczne, i chętnie znacznie wcześniej przekazywałoby raz wypożyczone książki komuś innemu niż to robi bez takiego zewnętrznego impulsu.

Ciekawe, czy widzieliście gdzieś coś podobnego?

Dwupoziomowa gra sieciowa

Wyobraźmy sobie, że pewnego dnia dwa wielkie koncerny tworzące gry komputerowe, id software oraz Blizzard Entertainment, wpadają na pomysł połączenia sił.
Obie te firmy wypuściły dotąd na rynek zaledwie po kilka-kilkanaście gier, jednak praktycznie wszystkie ich produkcje stały się dziełami kultowymi wśród graczy i wyznaczały kierunek rozwoju dla całego przemysłu. To dość interesujące z biznesowego punktu widzenia: podczas gdy wiele mniejszych firm i wielkich producentów (jak Electronic Arts) wydaje dziesiątki gier, te tworzą jeden produkt na kilka lat i zarabiają na nim krocie; każda ich produkcja jest znakomicie dopracowana i zawiera dużą dawkę nowinek.

Te firmy mogłyby połączyć siły, żeby stworzyć zupełnie nowy gatunek gier - gry dwupoziomowe. Co to takiego?

Pomysł jest następujący: pewna liczba graczy gra w grę strategiczną typu RTS (strategię czasu rzeczywistego), dowodząc oddziałami, wydając im rozkazy, wznosząc budowle i jednostki. Cele bywają różne - zniszczyć siły przeciwnika, zdobyć jakiś teren, zwycięstwo może mieć charakter ekonomiczny. Gra odbywa się w sieci, tj. więcej niż jeden gracz bierze udział w tej samej rozgrywce. W tym samym czasie odbywa się druga część tej samej zabawy, tj. kilku innych graczy wciela się w jednostki, którymi owi dowódcy RTS-a (do pewnego stopnia) kierują. Ale ci żołnierze, np. marines, grają w perspektywie FPP czy TPP - jak w grach Quake czy Doom.

Dlaczego tutaj o tym piszę? Bo byłby to zupełnie nowy rodzaj interakcji między graczami, a także między graczem a środowiskiem. Współpraca nabiera nowego wymiaru; konflikty są realniejsze:

  • żołnierze “na dole” odbierają co chwilę nowe rozkazy - często sprzeczne (ci “na górze” będą przecież co chwilę zmieniać zdanie)
  • w grę zaczyna wchodzić prawdziwa psychologia i przywództwo: autorytety, posłuszeństwo, komunikacja w grupie
  • można zakładać bardzo skuteczne działania wybranych jednostek na poziomie strategii czy może taktyki, bo trudno sobie wyobrazić uczestnictwo wielotysięcznej armii na tej zasadzie
  • gra robi się bardzo dynamiczna, zwłaszcza jeśli dopuści się regularne zastępowanie jednostek sterowanych przez komputer kolejnymi “żywymi” graczami
  • zależnie od punktacji (skuteczności rejestrowanej w systemie gry) dowódcy mogą mieć więcej lub lepszych graczy żywych po swojej stronie, aby pokonywać coraz trudniejszych przeciwników
  • skuteczniejsi żołnierze na poziomie strzelaniny mogą stawać się np. silniejsi fizycznie lub otrzymywać lepsze wyposażenie
  • cały system planowania rozgrywek, klanów, turniejów znany z obecnego Battle.Net można zachować, a pewnie jeszcze bardziej rozwinąć
  • gra staje się jeszcze bardziej angażująca i niepowtarzalna

Dość rzadko czytuję o grach komputerowych w kontekście użyteczności; może powodem jest między innymi to, że - jak ktoś gdzieś słusznie zauważył - gry komputerowe wydają się jedynym rodzajem oprogramowania, gdzie wcale nie chodzi o to, aby było jak najłatwiej osiągnąć cel. Tutaj także nie na tym bym się skupiał, chciałem jedynie podzielić się wizją kolejnego pokolenia rozrywki internetowej, które separowałoby graczy preferujących różne typy gry: ten sam świat, a przecież jedni strzelają, inni zaś zajmują się wydawaniem rozkazów.

W tym sensie gra byłaby dwupoziomowa, a naturalnym rozszerzeniem tego pomysłu jest dalsza komplikacja systemu. Z czasem osiągnęlibyśmy zapewne coraz doskonalsze przybliżenia mechanizmów społecznych świata rzeczywistego, wirtualną rzeczywistość opartą na charakterze współpracy, a nie na technologii alternatywnej percepcji.

Jest to duże wyzwanie techniczne i koncepcyjne, ale celowo pisałem o id software (m.in. serie Doom i Quake) oraz Blizzard (gigantyczna platforma gier online Battle.net, serie StarCraft i WarCraft) - te firmy pokazały, że potrafią zbudować coś wybitnego w dziedzinie rozrywki komputerowej, bardzo “grywalnego”.

Uczciwie muszę dodać, że nie jestem pewien autorstwa pomysłu opisanej gry dwupoziomowej - mam wrażenie, że tę ideę rzucił w rozmowie ze mną jakiś znajomy. Ciekaw jestem, czy istnieją już gdzieś gry tego rodzaju, jeśli jednak nawet tak jest - nie przebiły się do mojej świadomości. Czy ktoś z Was słyszał o podobnej koncepcji?

Tymczasem trzeba zadowolić się tradycyjnymi grami - ostatnio pojawił się Age of Empires III, kolejna, znów nowatorska (jak cała seria) gra RTS, którego wersja demonstracyjna skusi mnie chyba ostatecznie do dokonania zakupu pełnej wersji…

Uzupełnienie: jak poniżej informują Riddle i harnir (dzięki!), istnieje już gra oparta na tym pomyśle - Battlefield 2 (z roku 2005). Co ciekawe, nie jest chyba promowana jako rewolucja pod tym względem…

Zrzucić więcej na przeglądarki

Wraz z rozwojem stron WWW kształtują się pewne standardy nazewnictwa, zawartości, układu stron i sposobu działania najważniejszych mechanizmów, takich jak wyszukiwanie wewnątrz witryny czy koszyk. Jednocześnie rozwijały się przeglądarki; dwa główne rozwijane elementy to wyświetlanie (ewolucja razem z nadejściem nowych standardów HTML i CSS) oraz poprawki interfejsu/nowe funkcje wspierające przeglądanie (np. zakładki/panele).

Czy nie byłoby dobrze poprzez odpowiednie znaczniki HTML “wyrzucić” część ważnych, często powtarzających się funkcji lub odnośników do stałego miejsca przeglądarki? Obecnie jest to częściowo możliwe poprzez znacznik LINK z odpowiednim parametrem REL, choć i tak niektóre tylko przeglądarki obsługują ten standard.

Opera obsługuje następujące odnośniki: strona główna, spis treści, indeks, wyszukiwanie, pomoc, pierwszy/poprzedni/następny/ostatni dokument w kolekcji, dokument o poziom wyżej w hierachii, informacje o autorze i prawach autorskich. Niektóre z tych łączy zdefiniowane są na przykład na pewnych stronach w3.org, ale mam wrażenie, że od dłuższego czasu nawet W3C odchodzi od stosowania tych znaczników.

Wspólne elementy wielu witryn, które pojawiają się dzisiaj, i które moim zdaniem warto przynajmniej rozważyć w tym kontekście, to:

  • wyszukiwanie - w przeglądarce znalazłoby się dodatkowe okienko (a nie tylko odnośnik) służące do wyszukiwania, pod które “podczepiony” byłby adres odpowiedniego formularza witryny
  • koszyk - w sklepach internetowych nie trzeba by już szukać koszyka. Odnośnik zawsze znajdowałby się w tym samym miejscu; odpowiednimi parametrami kodu HTML można by sterować dodatkowymi informacjami, takimi jak np. liczba towarów w koszyku
  • logowanie/wylogowanie - odnośnik lub wręcz formularz, czyli dwa pola tekstowe służące do wpisania nazwy użytkownika i hasła
  • kontakt - strona z informacjami adresowymi i kontaktowymi
  • praca - na stronach firmowych, stały odnośnik do informacji dla szukających pracy
  • nowości, promocje, bestsellery - typowe, często spotykane i interesujące klientów odnośniki dla sklepów internetowych
  • złóż zamówienie - dość ryzykowne, ale kto wie - mogłoby się okazać, że całkiem przydatne

Prawdopodobnie, gdyby autorzy stron przekonali się do takiego mechanizmu, powstałyby “bloki” tematyczne, np. mocno reprezentowany na powyższej liście blok e-commerce (koszyk, logowanie, złożenie zamówienia).

Ostatnio w rozmowie z kolegą z pracy zastanawialiśmy się nad tym, czy warto umieszczać na stronie odnośniki powrotu… ostatecznie przecież przycisk “Wstecz” jest w każdej przeglądarce, i rzeczywiście użytkownicy z niego korzystają. Sam kiedyś zdecydowałem, że warto w małej aplikacji webowej umieścić stały odnośnik “powrót”, ponieważ niektórzy jej użytkownicy dopiero rozpoczynali przygodę z komputerem (i Internetem) i skupiali się niemal wyłącznie na zawartości strony, interfejsu przeglądarki w ogóle “nie zauważając”.

Powyższe propozycje można więc potraktować jako rozszerzenie koncepcji przycisku Wstecz obecnego w każdej przeglądarce. “Wyszukaj w witrynie”, “zaloguj” i “złóż zamówienie” zawsze w tym samym, znajomym miejscu przeglądarki, wyglądające i oznaczające to samo… czemu nie?

    starsze artykuły »