Struktura zwycięstwa

in #polish7 years ago

Wstęp
Jak wiemy wszystko co znajduje się w naszym komputerze jest w pewien sposób uporządkowane. Aby jakoś i te metody uporządkować powstały odpowiednie struktury danych.

Graf

Składa się z węzłów i krawędzi między nimi. Krawędzie te mogą być mostami jednokierunkowymi i wtedy mówimy o grafie skierowanym, albo pozwalającymi przechodzić w obie strony. Kolejną ważną cechą grafu jest jego cykliczność. Najlepszym wytłumaczeniem o co chodzi będzie stwierdzenie, że jeśli jesteś w stanie jakoś iść "do przodu" (tj. zgodnie z krawędziami) i jakimś cudem wrócić na miejsce z którego wyszedłeś, to właśnie trafiłeś na cykl. Istnienie cykli skutecznie uziemia część algorytmów idących siłowo do przodu.



rys 1. Przykładowy graf

Lista

Jest to pewien konkretny typ grafu nie mający rozgałęzień, można ją oczywiście uporządkować w pewien sposób, chodzić po nich w górę albo w dół, ale nie da się z nich jakoś zboczyć.

  • jestem
  • listą
  • możesz
  • sie po mnie poruszać w górę i w dół, bo nie określiłam kierunku
  • Ale nie masz gdzie indziej pójść

Listy co prawda mogą być cykliczne jak Ouroboros, ale te z wyżej wymienionego powodu raczej w internecie rzadko występują.



rys 2. Ouroboros

Stos

Niech ostatni będą pierwszymi.

Rzekł Jezus i zaimplementował stos. Stos jest bardzo prostą strukturą danych którą znają na pewno wszyscy niskopoziomowi programiści. Jego działanie sprowadza się do możliwości położenia czegoś na wierzch, albo zdjęcie czegoś. Jak więc widzimy nowe rzeczy będą na górze a starsze na dole.

Drzewo

Gdybyś zapytał mnie w przedszkolu czym jest drzewo... no to wiadomo roślina duża taka z drewna i tak dalej...
Dziś odpowiem Ci prosto, drzewo jest grafem bez cykli. Najlepszym przykładem tej struktury będzie... drzewo katalogów na Twoim dysku.



rys 3. Drzewo katalogów

Tablica Haszowana

Nie ma tu chyba osoby która w życiu nie użyła hasztaga, ot np #polish, ale co tu się takiego dzieje?
W oryginalnej strukturze, powinniśmy w jakiś sposób zamienić polish na liczbę, potem pójść do komórki tablicy o takim indeksie, aby tam znaleźć listę... z uwagi na kolizję trzeba by jeszcze sprawdzać czy konkretny element na tej liście jest otagowny polish czy nie.
Na szczęście my możemy po prostu zawołać bazę danych "ej daj artykuły z tagiem polish" i baza zwróci nam listę artykułów.

I na tym kończymy struktury które są nam potrzebne w dalszej części artykułu.

HyperText Transfer Protocol

Protokół hipertekstu, a więc tekstu z odnośnikami jest wręcz modelowym przykładem grafu. Strony to węzły a linki to krawędzie skierowane. Jako ciekawostkę można dodać, że w oryginalnych zamierzeniach linki miały działać w obie strony, ale z uwagi na zbyt duże problemy z zapanowaniem nad tym zaniechano tego pomysłu.
I tak Strony internetowe tworzą gigantyczny graf informacji.

Z tą wiedzą możemy już spokojnie zobaczyć jakie możliwości daje nam sieć na paru przykładach.

Wiki

Nie konkretna wikipedia a cała rodzina stron na jej silniki. A więc artykułów spiętych ze sobą odpowiednimi odnośnikami jest genialną wręcz metodą na przechowywanie wiedzy. Mimo raczej tekstowego charakteru, możliwość kliknięcia na nieznane nam pojęcie by dostać wyjaśnienie co się tam kryje sprawia że jest wręcz prawie interaktywna. Jak wygodne to jest przekonać się można przez to, że można znaleźć klona praktycznie na każdy temat np: Minecraft Arch Linux czy Straszne historie


rys 4. Logo Wikipedii

Zaletami tego rozwiązania jest na pewno bardzo szybki dostęp do informacji i bardzo duży porządek. Oczywiście jak wiemy taki stan rzeczy wymaga dyscypliny od użytkowników, ale nadal widzimy, że jest to naturalny sposób używania tego typu stron. Jako wadę należy wymienić totalny brak funkcji socjalnych, jak i dość biedne mechanizmy dyskusji.
Problemy te, jak i problemy trawiące listy mailingowe rozwiązują

Fora dyskusyjne

Eh te dawne czasy gdy każdy musiał mieć swoje forum gdzie w sumie nic nie było....
I to chyba spowodowało ich upadek. Forum samo w sobie jest genialnym wręcz rozwiązaniem między gromadzeniem wiedzy a socjalizacją. Struktura drzewa bajecznie ułatwia nawigację pozwala dzielić na konkretne działy, a rozdzielenie wiadomości od konkretnych użytkowników pozwala na dyskusję. Dodajmy jeszcze możliwość moderowania i mamy medium idealne dla studentów. Można dyskutować rozwiązania, jest miejsce na ogłoszenia co się dzieje na uczelni, czy umawianie się na piwo, a dzięki wspomnianej wcześniej strukturze można trzymać wręcz jedno wielkie forum na cały wydział czy uczelnie... przez wiele lat. Oh jak pięknie było by czytać 10 letni wątek o wyciskaniu mocy z Z-80...


rys 5. Najpopularniejsze forum w polskim internecie www.elektroda.pl

Jako wady for internetowych należało by wymienić ich rozdrobnienie, w szczycie popularności były ich dziesiątki jak nie setki. Oraz dość powolny wzrost kontentu. Jest lepiej niż na silnikach wiki... ale rozumiecie, człowiek na hobby ma parę godzin w tygodniu a sra nawet trzy razy dziennie.

Reddit

Jak zapewne starsi użytkownicy internetu wiedzą, poza forami specjalistycznymi jak właśnie wspominana elektroda, była masa forów na mydle i powidle. I były one spoko, jedynym problemem była ich mnogość. Reddit rozwiązał ten problem, stał się największym z nich. Jedyne co można zarzucić Redditowi to dość płytką strukturę.
Na screenie z Elektrody widzimy, że wejść można było całkiem głęboko. (Elektroda>Serwis GSM>GSM>GSM Serwis), na Reddicie aż tak głęboko wejść nie możemy. Przypomina on raczej Hasz Tablice, list, drzew. (kolejno reddit>subreddity>wątek>posty) I jest to jak najbardziej spoko, ale lekko inna struktura otworzyła by przed nim nowe możliwości.



rys 6. Logo portalu Reddit.com

A jak już jesteśmy na Reddicie to czas wejść na nasze podwórko, zapraszam na

Wykop.pl

A właściwie Mikroblog, nazywany największą piwnicą w Polsce, a jego mechanika bardzo przypomina również Twittera.
Mirkoblog to Lista wpisów, które to są listą komentarzy. Ot i wszytko... no prawie. Obok tej podstawowej struktury mamy tagi (btw. Michał napraw tagi XD), które pozwalają nam organizować treści w grupy, wołać ludzi, filtrować niechciane treści czy ułatwiają wyszukiwanie. Pamiętać trzeba jednak, że mikroblog nie powstał z myślą o gromadzeniu wiedzy i czas życia wątku to najwyżej parę godzin i nikt nie myśli o tym, że robi coś trwałego. Przez co mamy zwiększoną dynamikę, pytanie się raz w tygodniu o to samo przez kolejnego Świeżaka jest traktowane jako normalne... bo nie ma za bardzo jak mu powiedzieć "użyj opcji szukaj zamykam temat", bo i tak nic nie znajdzie. kolejną rzeczą zwiększającą dynamikę jest to że to jest miejsce gdzie spokojnie możesz się pochwalić że srałeś i nikt na Ciebie krzywo nie spojrzy.



rys 7. Logo największej piwnicy w Polsce

Widzimy więc że wraz z postępowaniem tego artykułu rzeczy przyśpieszają, ale i zwiększają chaos.
Pozwól, że dam Ci wziąć oddech przed Grand Finale i zapraszam na

Stack Exchange

Stack Exchange jest, zbiorem portali podobnych do StackOverflow , przez co przypomina Tablice haszującą.
każdy z wspominanych stosów, jest stosem pełnym par pytań i odpowiedzi. Próżno tam szukać zawiłych dyskusji czy głupich zabaw zdarzających sie na forach. Formuła jest prosta Pytanie-Odpowiedź jak najkrócej i najbardziej rzeczowo.
O sile tego portalu świadczą nie tylko użytkownicy, którzy chętnie pomagają, ale i genialna wyszukiwarka.
Nie dość, że wyszukiwarka szuka podobnych pytań w trakcie pisania własnego, to jeszcze moderatorzy, którzy są skłonni zadać Ci pytanie pomocnicze byś mógł się lepiej wysłowić.



rys 8. Portal bez którego światowe IT mogło by się zawalić

No i czas na gradn finale!

Facebook
Może to dobry portal społecznościowy... ale na pewno to że zjadł fora jest dla nas negatywne.
Facebook jest hasz tablicą, stosów, list. Coś takiego. Problem niestety taki że Stosy nie zachowują się jak stosy, a jakoś losowo. Nawigacja jest mocno utrudniona, a wbudowana wyszukiwarka to żart. Gdybyśmy jednak chcieli skorzystać z Googla, to ten opowie nam kawał o wężu bo nie ma jak indeksować zawartości schowanej za panelem logowania.
Portal ten posiada wszystkie wady mirkobloga i podnosi je do potęgi. Po pierwsze jest o wiele większy więc, przyrost treści jest też spoko większy. To jeszcze nie istnieją tam jakieś działające tagi. Autentycznie jedyną metodą by przeszukać grupę rocznika jest położenie cegły na pgDown i gdy ram się nam skończy ctrl+f. Dodatkowym utrudnieniem jest gigantyczna wręcz ilość grup. Wspomniany przykład forum dla studentów jest tu nie do zrobienia bez kilku-kilkunastu osobnych grup. Bałagan jaki to wszystko tworzy powoduje że znalezienie czegokolwiek przypomina zbieranie grzybów z zawiązanymi oczami... może przez przypadek wdepnę. Dosłownie jedyną zaletą Facebooka jest to, że dość agresywnie woła... ale spróbuj nie wchodzić na grupę roku przez miesiąc i możesz już tych powiadomień nie dostawać. Chyba jedynym gorszym od Facebooka rozwiązania jest wspólny mail czy inny dysk chmurowy.



rys 10. Jedna z gorszych rzeczy które spotkały internet

Ale dlaczego tak wielu z nas ma konto na Facebooku... no cóż efekt sieci i lenistwo użytkowników spowodowało, że wygrał. Facebook jest zawsze odpalony w tle, mamy go w aplikacji na telefonie, a forum czy inne wspomnie portale raczej odwiedzamy tylko gdy czegoś potrzebujemy. Przez co chcąc szybką odpowiedź student raczej zapyta na facebooku i forum wymrze.

Zakończenie
Jak widzimy zły pieniądz wypiera pieniądz lepszy i jedyne co możemy poradzić to stawać okoniem mając nadzieję że coś zdziałamy.

Sort:  

Do zalet dobrej struktury warto dodać jedna z najważniejszych - pozycjonowanie w wyszukiwarce. Boty googla lubią dobrze strukturalnie zbudowane strony i dają im plusika w rankingach.

Jak jest porządek to nawet boty się nie gubią :) a boty promują co wygodne.

Duża nadzieja w blockchainie.

BlockChain czyli łańcuch bloków to "ładniejsza" lista. acykliczna, jednokierunkowa lista.
I jak byś nie skakał, lista jest jedną z najgorszych metod przechowywania wiedzy. Dlaczego jest zła?
Chodzi o bardzo długi czas przeszukiwania. Jeśli szukasz powiedzmy wszystkich moich wpisów.
Na silniku Wiki najprawdopodobniej zaimplementowane będzie drzewo (o logarytmicznym czasie dostępu), co daje takie same wyniki jak przeszkiwanie forum.
Powiedzmy że mamy zorganizowane to tak że w każdym ruchu wybierasz jedną litere nicku osoby której szukasz, znalezienie ciebie to 6 ruchów i otrzymujemy listę, w moim przypadku będzie to aż 10 ruchów.
Ale zakładając że mamy listę bez żadnej obudowy, czyli goły blockchain... Znalezienie wpisów danej osoby wymaga od nas... przekopania całego łańcucha odfiltrowując wpisy z odpowiednim autorem.

Blockchain jest świetny do przechowywania pieniędzy (tak długo jak mamy dość pamięci by go przechować), ale przez bardzo "drogie" przeszukiwanie nie nadaje się zbytnio do przechowywania wiedzy.
Mam nadzieję że mnie rozumiesz, jeśli coś jest nie jasne nie bój się zapytać.

Interesting
I will follow you to see your future posts!

I see here 2 options, you comment it like bot, or use english with no reason.