Ostatnie dwa tygodnie było dość słabe jeżeli chodzi o Elixir, ale ze wszystkiego coś dobrego może wyjść. I tym o to postem rozpoczynam serię pisania aplikacji w elixir. Od tej pory posty będą związane z tym co piszę i jak elixir może mi tutaj pomóc. Na razie nie planuje użyć Phoenix ale na pewno będę używał mix i unit tests oraz kilku jeszcze innych narzędzi. Każde opiszę i powiem jak i w czym to ma mi pomóc. A dziś rozpoczynamy tworzenie projektu którym to będzie ElTorrento – klient BitTorrent .

Dlaczego BitTorrent?

Są dwie odpowiedzi: dlaczego nie? Nigdy tego nie pisałem, nigdy tego już nie napiszę. A elixir i erlang się do tego bardzo dobrze nadają. Małe procesy, odbierające wysyłające, jak coś padnie zaraz powstanie. Może się okazać, że to wcale nie takie trudne ;)

Drugi to taki, że usłyszałem o tym w jakimś podcaście i mi się pomysł spodobał. Zrób coś czego jeszcze nigdy nie robiłeś.

Jaki jest plan?

Przez najbliższe tygodnie będę czytał co to jest BitTorrent i na jakiej zasadzie on działa i próbował to zaimplementować. Może się uda, może nie. Wszystko udokumentuje, i może z tego powstać całkiem niezły tutorial. Zobaczymy jak to mi pójdzie i dokąd dojdę. Jeżeli zaś macie jakieś ciekawe linki na temat obsługi BitTorrent to ja z chęcią je przyjmę.

Znaczy to, że nie tylko będę pisał o Elixir ale także o tym jak działa i na jakiej zasadzie działa BitTorrent. Więc albo będzie dwa razy więcej elixira, albo wciąż tyle samo ale przeplatany będzie teorią.

Pierwsze kroki

Początki są zawsze proste. Kod znajduje się na github. To co aktualnie tam jest to stworzony projekt umbrella. Czemu tak? Bo sądzę, że kilka modułów będzie potrzebnych. Jeszcze sam nie wiem jakie ale wiem, że na jednym się to nie skończy :)

A więc, tworzymy nowy projekt:

mix new --umbrella el_torrento

I to wszystko, przybijamy sobie piątki i wiśta wio! :)

Nie zupełnie, projekt jest, ale dodam coś o BitTorrent .

Jak działa BitTorrent – ogólnie?

Każdy wie co to BitTorrent tak? Pewnie każdy korzystał z tego by coś ściągnąć w sieci, a przy ściąganiu jednocześnie udostępnialiśmy to co ściągnęliśmy. Zarówno mogliśmy ściągać z wielu źródeł jak i wysyłać dane do wielu. Przez co robiliśmy za router, to co dostaliśmy oddaliśmy zapisując sobie to na dysku.

To też właśnie powoduje, że BitTorrent jest traktowany jako nielegalny – bo jak coś ściągamy to też udostępniamy i bierzemy udział w przestępstwie. A w projekcie nie chodzi o to by być nielegalnym, ale by działać w pełni legalnie. Z ciekawostek mogę dodać, że BitTorrent jest wykorzystywany całkiem legalnie przez Blizzard w procesie aktualizacji aplikacji – przynajmniej swojego czasu był. Tak samo FB i Twitter wewnętrznie wykorzystywali (nie wiem czy dalej to robią) do przenoszenia plików z jednego miejsca do drugiego.

BitTorrent - Mapa
BitTorrent – Mapa (Scott Martin – Own work This vector image includes elements that have been taken or adapted from this: Desktop computer clipart – Yellow theme.svg. This vector image includes elements that have been taken or adapted from this: Arrlr.svg (by Harlekin96)).

Podsumowanie

To tyle na dzisiaj. Za tydzień pierwsze kroki, lub pierwsze narzędzia z których będę korzystał. Pora wiedzę którą zebrałem w ciągu ostatnich tygodni wykorzystać :) aż się nie mogę doczekać :)

I teraz pytanie do was, co myślicie o pomyśle? Będzie ciekawie? Na tyle byście śledzili czy wolicie coś kompletnie innego?

6 KOMENTARZE

  1. > A w projekcie nie chodzi o to by być nielegalnym, ale by działać w pełni legalnie.

    Mógłbyś to rozwinąć? Masz na myśli, że celem projektu jest stworzenie aplikacji, w której się tylko ściąga, a nic nie udostępnia?

Comments are closed.