eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingPorównanie różnych języków
Ilość wypowiedzi w tym wątku: 151

  • 141. Data: 2011-12-21 23:03:59
    Temat: Re: Porównanie różnych języków
    Od: Maciej Sobczak <s...@g...com>

    On Dec 21, 6:03 pm, Andrzej Jarzabek <a...@g...com>
    wrote:

    > > Jasne. Ale tydzień później będę robił drugą notatkę. Potem trzecią i N-
    > > tą. W sumie napiszę tyle samo. Zdaje się, że to uzgodniliśmy, bo.
    >
    > Modulo to, że notatka, z której zaczynasz korzystać tego samego dnia,
    > a kończysz korzystać w tym samym tygodniu, może być znacznie krótsza
    > niż dokument, notatka czy cokolwiek, z czego zanczniesz korzystać za
    > miesiąc.

    Nie, bo w sumie i tak musi być tego tyle samo - informacji nie da się
    zniknąć.
    Argument jest taki sam, jak już był.

    > Powód nazywa się natura ludzka. Jeśli nie ma aktywnej weryfikacji
    > aktualności wymagań w czasie, to fakt, że cośtam, co się zmieniło albo
    > okazało powoduje, że cośtam, co kilka miesięcy wcześniej zostało
    > zapisane w dokumencie jest nieaktualne i powinno zostać usunięte lub
    > zrewidowane, może łatwo umknąć uwadze.

    Nic nie umyka uwadze, bo jest DDD. Nie siadasz do kodu, dopóki nowej
    wiedzy (albo zupełnie nowej albo zmian do istniejącej) nie przelałeś
    na papier. W ten sposób dokumentacja zawsze jest zgodna z kodem.
    Równie dobrze mógłbym powiedzieć, że w TDD można napisać nowy kod nie
    pisząc do niego testów i w ten sposób coś może umknąć uwadze. Każdy
    proces można przeprowadzić źle.

    > > Uwaga: trwa to dokładnie tyle samo, ile pisanie notatki.
    >
    > No więc niekoniecznie. Na przykład notatka, którą teraz mam przed
    > oczami brzmi tak: "załączniki!"
    > Wpisane do dokumentacji byłoby to bezużyteczne, ale dla mnie w
    > aktualnej sytuacji jest wystarczające.

    Nie życzę źle, ale co by było, gdybyś dziś wieczorem wpadł pod
    przysłowiowy autobus?
    Czy ta notatka nadal byłaby "wystarczająca"? Dla kogo?
    Albo gdybyś jutro na skutek chwilowej niedyspozycji jednak uznał, że
    ta notatka jest za krótka i poszedłbyś ponownie do OSCRa a to on wpadł
    pod autobus?
    Agile zbyt mocno polega na tym, że "będzie dobrze".

    [...]

    > Tego nadal może być sporo. Ale jeśli podzieslisz problem na
    > odpowiednio małe kawałki, to uważaj, bo zaczynasz być agile :)

    Ja nie mam nic przeciwko spontanicznemu byciu agile, jeśli tak ma się
    nazywać stan, w którym szybko reaguję na zmiany wymagań. Natomiast to,
    co odrzucam w agile i w każdej innej metodologii to stan
    fetyszyzowania i wystawiania procesu przed projekt. Mam tu na myśli
    narzucanie jakiejś formy na wszystkie okazje - np. reguły, że OSCR
    jest jeden, pisanie notatki ma trwać co najwyżej 15 minut a iteracja
    ma mieć dokładnie tydzień. Dupatam - rozmawiać trzeba z tyloma ludźmi
    ile potrzeba, pisanie notatki (pardon: dokumentacji) ma trwać tyle,
    ile potrzeba żeby ją zapisać a iteracja ma trwać tyle, ile potrzeba,
    że zrobić etap. Czasem to może być pół dnia a czasem 3 miesiące.
    Wciskanie 3-miesięcznego etapu w tygodniową iterację jest głupie -
    widziałem to i słabo było.

    > > I tym akcentem powoli należy zwijać wątek, bo idą święta i trzeba się
    > > zabrać za bigos.
    >
    > Ano ano. Coś chyba za bardzo nam się świąteczny nastrój udziela i jadu
    > brakuje do podtrzymania flejma...

    Jakiego flejma? O ile ustaliliśmy już, że agile nie polega na
    niepisaniu dokumentacji, to nawet nie ma o co się kłócić.

    --
    Maciej Sobczak * http://www.msobczak.com * http://www.inspirel.com


  • 142. Data: 2011-12-22 01:25:33
    Temat: Re: Porównanie różnych języków
    Od: Andrzej Jarzabek <a...@g...com>

    On 21/12/2011 23:03, Maciej Sobczak wrote:
    > On Dec 21, 6:03 pm, Andrzej Jarzabek<a...@g...com>
    > wrote:
    >>
    >> Powód nazywa się natura ludzka. Jeśli nie ma aktywnej weryfikacji
    >> aktualności wymagań w czasie, to fakt, że cośtam, co się zmieniło albo
    >> okazało powoduje, że cośtam, co kilka miesięcy wcześniej zostało
    >> zapisane w dokumencie jest nieaktualne i powinno zostać usunięte lub
    >> zrewidowane, może łatwo umknąć uwadze.
    >
    > Nic nie umyka uwadze, bo jest DDD. Nie siadasz do kodu, dopóki nowej
    > wiedzy (albo zupełnie nowej albo zmian do istniejącej) nie przelałeś
    > na papier.

    Ale samo przelanie na papier nie zabezpieczy cię przed otrzymaniem w
    końcu dokumentacji zawierającej nieaktualne informacje. Co więcej,
    możesz mieć w takiej dokumentacji sprzeczne informacje, z których część
    jest aktualna, a część nie.

    >>> Uwaga: trwa to dokładnie tyle samo, ile pisanie notatki.
    >>
    >> No więc niekoniecznie. Na przykład notatka, którą teraz mam przed
    >> oczami brzmi tak: "załączniki!"
    >> Wpisane do dokumentacji byłoby to bezużyteczne, ale dla mnie w
    >> aktualnej sytuacji jest wystarczające.
    >
    > Nie życzę źle, ale co by było, gdybyś dziś wieczorem wpadł pod
    > przysłowiowy autobus?

    Już nic, bo zanim wyszedłem z pracy zdążyłem zaimplementować to, czego
    notatka dotyczyła. Sama notatka jest już w śmietniku. Oczywiście nie
    zawsze tak będzie, w tej chwili na biurku zostawiłem trochę notatek, z
    których ciężko byłoby skorzystać, gdybym dzisiaj wpadł pod autobus. Ale
    ponieważ właśnie dzisiaj rozmawiałem z kilkoma osobami na ten temat, to
    prawdopodobnie nie byłoby tragedii - razem przypominając sobie, co było
    powiedziane, oraz przeglądając notatki byliby prawdopodobnie w stanie
    zrekonstruować ich treść.

    Problem jest taki: gdybym zamiast każdej z tych notatek, które powstały
    w mniej niż minutę, chciał zapisać w postaci dokumentu, który ktokolwiek
    mógłby przeczytać i zrozumieć, to prawdopodobnie zajęłoby to wiele
    godzin. Biorąc pod uwagę prawdopodobieństwo wpadnięcia pod autobus
    (pewnie mniej niż jeden na milion), jaka jest ekonomia takiego działania?

    Powiem więcej: gdybym dzisiaj wpadł pod autobus, to prawdopodobnie firma
    by trochę ucierpiała, bo jestem w tej chwili jedynym implementatorem
    dość krytycznego projektu. Być może koszta by były rzędu nawet zw dwóch
    osobomiesięcy (chociaż to jest szacunek na wyrost). Ale to nie przez te
    notatki, tylko przez to, że pracując nad tym, nad czym pracuję, zdobyłem
    pewną wiedzę w temacie, którą przejmująca temat osoba musiałaby w dużej
    mierze zdobyć od nowa. Ale przede wszystkim dlatego, że samo opóźnienie
    spowodowałoby problemy organizacyjne zaburzające pracę wielu innych
    ludzi. Oczywiście gdybym wszystko, czego się dowiaduję, dokładnie
    dokumentował, to potencjalna osoba przejmująca moją pracę po moim
    potencjalnym wypadku z autobusem miałaby łatwiej, ale samo pisanie
    takiego dokumentu trwałoby z miesiąc, przez co po pierwsze problemy
    związane z opóźnieniem miałbym za darmo, a po drugie kosztowałoby to
    firmę dodatkowy roboczomiesiąc mojej pracy, i to wszystko, żeby uniknąć
    dwóch roboczomiesięcy na wypadek zdarzenia, którego prawdopodobieństwo
    jest jeden na milion.

    > Albo gdybyś jutro na skutek chwilowej niedyspozycji jednak uznał, że
    > ta notatka jest za krótka i poszedłbyś ponownie do OSCRa a to on wpadł
    > pod autobus?

    W tym przypadku to mało prawdopodobne (żebym uznał, abstrahując już od
    prawdopodobieństwa wpadnięcia pod), ale nawet gdyby coś takiego zdarzyło
    się z inną notatką, to mój OSCR nie jest jedyną osobą, która posiada
    odpowiednią wiedzę. Nawet jeśli uzyskanie tej wiedzy byłoby przez chwilę
    trudniejsze, to byłoby to co najwyżej kilkudniowe opóźnienie.

    > Agile zbyt mocno polega na tym, że "będzie dobrze".

    Właśnie agile tak w ogóle to jest głównie zabezpieczanie się przed tym,
    że może być niedobrze.

    W szczególności np. XP ma wiele praktyk zabezpieczających przed
    scenariuszami "wpadł pod autobus" - zaczyna się od przelania wiedzy o
    wymaganiach i projekcie na testy, jest programowanie parami, collective
    code ownership, regularne spotkania na których jest obecny cały zespół,
    i na których się mówi o tym, nad czym aktualnie się pracuje, z czym są
    problemy (release planning, iteration planning, daily stand-up) i co tam
    jeszcze.

    > Ja nie mam nic przeciwko spontanicznemu byciu agile, jeśli tak ma się
    > nazywać stan, w którym szybko reaguję na zmiany wymagań. Natomiast to,
    > co odrzucam w agile i w każdej innej metodologii to stan
    > fetyszyzowania i wystawiania procesu przed projekt.

    Wręcz przeciwnie, fetyszyzowanie procesu jest sprzeczne z Agile. Nawet
    pierwszy value o tym jest. :)

    > Mam tu na myśli
    > narzucanie jakiejś formy na wszystkie okazje - np. reguły, że OSCR
    > jest jeden,

    Nie ma takiej reguły. OSRC-ów jak najbardziej może być kilku.

    > pisanie notatki ma trwać co najwyżej 15 minut

    To był żart przecież, chodziło o to, że w związku z tym, że przyswajanie
    dużej ilości informacji na raz wiąże się z tym, że część się zapomina,
    należy przyswajać ją w małych kawałkach i starać się robić jedną rzecz
    na raz.

    > a iteracja
    > ma mieć dokładnie tydzień. Dupatam - rozmawiać trzeba z tyloma ludźmi
    > ile potrzeba, pisanie notatki (pardon: dokumentacji) ma trwać tyle,
    > ile potrzeba żeby ją zapisać a iteracja ma trwać tyle, ile potrzeba,
    > że zrobić etap. Czasem to może być pół dnia a czasem 3 miesiące.
    > Wciskanie 3-miesięcznego etapu w tygodniową iterację jest głupie -
    > widziałem to i słabo było.

    Iteracje nie są po to, żeby w coś w nie wciskać, tylko żeby mieć
    regularny odstęp czasu do planowania kolejnych priorytetów i do
    planowania. Twój "etap" spokojnie może się mieścić w wielu iteracjach.

    Poza tym: niektórzy zalecają inną długość iteracji lub też mówią, żeby
    ustalić długość na 1 do 3 tygodni. Owszem, tydzień jest zalecany, i
    reguła mówi, że iteracje mają być równej długości. Tylko powiedz
    realnie, na czym polega twoja potrzeba, żeby iteracja była dłuższa? Bo
    wydaje mi się, że jakoś źle tych iteracji używasz. To nie są inaczej
    nazwane "etapy".


  • 143. Data: 2011-12-22 08:51:19
    Temat: Re: Porównanie różnych języków
    Od: Roman W <b...@g...pl>

    On Wednesday, December 21, 2011 7:53:16 PM UTC, Edek wrote:
    > On 12/20/2011 12:56 AM, Roman W wrote:
    >
    > >
    > > W moim srodowisku pracy to sie robi tak, ze sie bierze kolesia A po
    > > matematyce albo fizyce, kaze mu przeczytac pare ksiazek i sporo
    > > artykulow z dziedziny, po czym sadza sie kolo kolesia B ktory ma
    > > zarabiac pieniadze przy uzyciu modeli tworzonych przez kolesia A, po
    > > czym B tak dlugo bije i zniewaza A az ten a) nauczy sie pisac
    > > przyzwoitej jakosci kod C++ (rzadziej Java) i b) zaimplementuje kod
    > > ktory zarabia na pensje i premie obydwu. Moze to nie jest Agile, ale
    > > czasami jest bardzo "extreme".
    >
    > Z ciekawości: dlaczego po matematyce lub fizyce, a nie po informatyce?
    > Rozumiem, że łatwiej nauczyć matematyka informatyki niż odwrotnie,
    > ale informatyka w Polsce może być zarówno informatyką chemii spożywczej
    > jak i stosowaną ekonometrią.

    Stosowana ekonometria pewnie bedzie OK (jesli bedzie znal tez rachunek
    stochastyczny), ale to IMHO nie jest to, co sie na ogol rozumie przez "computer
    science".

    >
    > Inaczej mówiąc, nie widzę ja akurat powodu dlaczego ktoś ze znajomością
    > metod numerycznych nie miałby napisać szybciej i lepiej kodu wg. modeli,
    > który koleś B mu podsunie. Jak to jest?

    W praktyce nie wystarczy znac tylko metod numerycznych, trzeba znac matematyke ktora
    za nimi stoi. Ktos, kto nie zna matematyki, nie zrozumie zreszta i metod
    numerycznych, bedzie najwyzej przepisywal na slepo algorytmy z "Numerical Recipes".

    Widzialem raz taki eksperyment, kiedy koles po CS dostal opisany model, i go
    zaimplementowal. Implementacja przechodzila iles testow, ale byla matematycznie
    schrzaniona, bo programista zrobil przeksztalcenia ktore jemu wydawaly sie
    nieszkodliwe, ale niestety byly.

    RW


  • 144. Data: 2011-12-22 08:53:36
    Temat: Re: Porównanie różnych języków
    Od: Roman W <b...@g...pl>

    On Thursday, December 22, 2011 1:25:33 AM UTC, Andrzej Jarzabek wrote:
    > Już nic, bo zanim wyszedłem z pracy zdążyłem zaimplementować to, czego
    > notatka dotyczyła. Sama notatka jest już w śmietniku.

    To na czym ma polegac osoba, ktora przejmuje taki kod? Tylko na komentarzach?

    RW


  • 145. Data: 2011-12-22 09:17:23
    Temat: Re: Porównanie różnych języków
    Od: "Stachu 'Dozzie' K." <d...@g...eat.some.screws.spammer.invalid>

    On 2011-12-22, Roman W <b...@g...pl> wrote:
    > On Thursday, December 22, 2011 1:25:33 AM UTC, Andrzej Jarzabek wrote:
    >> Już nic, bo zanim wyszedłem z pracy zdążyłem zaimplementować to, czego
    >> notatka dotyczyła. Sama notatka jest już w śmietniku.
    >
    > To na czym ma polegac osoba, ktora przejmuje taki kod? Tylko na komentarzach?

    Po co komentarze? Przecież my rozumiemy własny kod :>

    --
    Secunia non olet.
    Stanislaw Klekot


  • 146. Data: 2011-12-22 10:11:51
    Temat: Re: Porównanie różnych języków
    Od: Andrzej Jarzabek <a...@g...com>

    On Dec 22, 8:53 am, Roman W <b...@g...pl> wrote:
    > On Thursday, December 22, 2011 1:25:33 AM UTC, Andrzej Jarzabek wrote:
    > > Już nic, bo zanim wyszedłem z pracy zdążyłem zaimplementować to, czego
    > > notatka dotyczyła. Sama notatka jest już w śmietniku.
    >
    > To na czym ma polegac osoba, ktora przejmuje taki kod? Tylko na komentarzach?

    Tego kodu akurat nikt nie przejmie. Prawdopodobnie za jakieś trzy
    tygodnie zostanie wykonany raz w produkcji i odłożony do lamusa.

    W ogólnym przypadku polega się przede wszystkim na czytelnym kodzie i
    czytelnych testach.


  • 147. Data: 2011-12-22 10:18:24
    Temat: Re: Porównanie różnych języków
    Od: Roman W <b...@g...pl>

    On Thursday, December 22, 2011 10:11:51 AM UTC, Andrzej Jarzabek wrote:
    > On Dec 22, 8:53 am, Roman W <b...@g...pl> wrote:
    > > On Thursday, December 22, 2011 1:25:33 AM UTC, Andrzej Jarzabek wrote:
    > > > Już nic, bo zanim wyszedłem z pracy zdążyłem zaimplementować to, czego
    > > > notatka dotyczyła. Sama notatka jest już w śmietniku.
    > >
    > > To na czym ma polegac osoba, ktora przejmuje taki kod? Tylko na komentarzach?
    >
    > Tego kodu akurat nikt nie przejmie. Prawdopodobnie za jakieś trzy
    > tygodnie zostanie wykonany raz w produkcji i odłożony do lamusa.
    >
    > W ogólnym przypadku polega się przede wszystkim na czytelnym kodzie i
    > czytelnych testach.

    IMHO to jest za malo.

    RW


  • 148. Data: 2011-12-22 10:33:03
    Temat: Re: Porównanie różnych języków
    Od: Andrzej Jarzabek <a...@g...com>

    On Dec 21, 7:26 pm, Edek <e...@g...com> wrote:
    > On 12/21/2011 06:40 PM, Andrzej Jarzabek wrote:
    >
    > > Oczywiście zespoły agile mogą funkcjonować w kontekście istnienia
    > > architekta poza zespołem - jeśli np. jest kilka zespołów tworzących
    > > różne "produkty", architektem można nazwać kogoś, kto decyduje ite
    > > tych "produktów" ma być i w jaki sposób funkcjonalność będzie dzielona
    > > między nimi, jak również może decydować o rzeczach typu Unix czy
    > > Windows, Oracle czy Sybase itd.
    >
    > O kurde. Mamy inne doświadczenia.

    Moje doświadczenie w ogóle jest takie, że "architekt" znaczy różne
    rzeczy w różnych organizacjach.

    Natomiast jeśli masz coś do powiedzenia na temat swoich doświadczeń w
    kwestii tego, co napisałem, to nie krępuj się i wal prosto z mostu.

    > >> Co do dużych zespołów - x>>  50, powiedzmy 500 - też się stosuje Agile,
    > > 500-osobowy zespół? Stosujący agile? Masz jakieś przykłady? Jakie
    > > metodologie się w tych zespołach stosuje?
    >
    > 30MLOC to ile osób? Tak naprawdę to źle użyłem słowa zespół: dział,
    > albo i większa struktura.

    No więc to trochę jakby robi różnicę. Dla uwagi jeszcze należałoby
    ustalić, czy te 500 osób to programiści lub zespoły developerskie
    złożone głównie z programistów, czy wliczają się w to też supportowcy,
    obsługa data centre, handlowcy, office management i tak dalej.

    > > W XP i XP-podobnych wariantach Scrum jest takie wymaganie.
    > > Oragnizacyjnie, nie może być tak, że zespół nie może zrefaktoryzować
    > > swojego kodu i wywalic np. jakieś funkcje czy klasy, bo inny zespół z
    > > nich korzysta. Każdy komponent musi tylko udostępniać dobrze
    > > zdefiniowane i obwarowane acceptance testami interfejsy, i ci, którzy
    > > korzystają z tych interfejsów to "klienci" danego zespołu.
    > > Implementacja tych interfejsów jest własnością zespołu i zespół musi
    > > mieć na tyle autonomii, żeby sobie tę implementację móc zmieniać
    > > według potrzeb. To miałem na myśli pisząc "autonomiczne komponenty",
    > > oczywiście nie chodzi o to, żeby każdy z nich mógł być używany bez
    > > pozostałych.
    >
    > To w specyficzny sposób wspiera tezę z mojego pierwszego posta: dzięki

    Nie mam pojęcia o jaką tezę ci chodzi. Możesz przypomnieć?

    > Agile odkryliśmy abstrakcję API. Kiedyś odkryjemy, że API to jeszcze nie
    > wszystko i warstwy muszą działać razem.

    Kiedyś może odkryjecie, że do tego właśnie służy abstrakcja API.

    > Dziękujemy o Agile za odkrycie warstw abstrakcji i testów. Ja tu nie
    > widzę żadnej różnicy pod względem metodyki, ale to pewnie zależy od
    > punktu, z jakiego się startuje zmieniając religię na zwinniejszą.

    Różnicy między czym a czym?


  • 149. Data: 2011-12-22 10:45:40
    Temat: Re: Porównanie różnych języków
    Od: Andrzej Jarzabek <a...@g...com>

    On Dec 22, 10:18 am, Roman W <b...@g...pl> wrote:
    > On Thursday, December 22, 2011 10:11:51 AM UTC, Andrzej Jarzabek wrote:
    > > On Dec 22, 8:53 am, Roman W <b...@g...pl> wrote:
    > > > On Thursday, December 22, 2011 1:25:33 AM UTC, Andrzej Jarzabek wrote:
    > > > > Już nic, bo zanim wyszedłem z pracy zdążyłem zaimplementować to, czego
    > > > > notatka dotyczyła. Sama notatka jest już w śmietniku.
    >
    > > > To na czym ma polegac osoba, ktora przejmuje taki kod? Tylko na komentarzach?
    >
    > > Tego kodu akurat nikt nie przejmie. Prawdopodobnie za jakieś trzy
    > > tygodnie zostanie wykonany raz w produkcji i odłożony do lamusa.
    >
    > > W ogólnym przypadku polega się przede wszystkim na czytelnym kodzie i
    > > czytelnych testach.
    >
    > IMHO to jest za malo.

    Bywa, ale często wystarczy. Wracając do kontekstu: jeśli zamiast
    trzech słów notatki, na podstawie której będziesz tworzyć
    implementację tego samego dnia, lub w tym samym tygodniu, napiszesz
    pięciostronicowy dokument w ten sposób, żeby mógł go zrozumieć i
    implementację zrobić ktoś inny, a następnie zrobisz tę implementację
    sam, to z konieczności w takim pięciostronicowym dokumencie znajdzie
    się wiele informacji, która będzie redundantna, o ile piszesz czytelny
    kod i testy. Jeśli napiszesz trzy słowa notatki, potem testy i
    implmenetację, a to, czego nie potrafisz wyrazić w testach i kodzie,
    umieścisz w komentarzach lub w dokumencie, to łączna ilość wysiłku nie
    jest taka sama, bo unikniesz pracochłonnego zapisywania znacznej
    części informacji dwa razy - w dokumencie w języku naturalnym
    (pseudokodzie, diagramie itd) i drugi raz w kodzie. A przede wszystkim
    omijasz problem potencjalnie uciążliwego procesu synchronizacji
    dokumentacji i kodu (lub przynajmniej znacznie zmniejszasz jego
    uciążliwość).


  • 150. Data: 2011-12-22 11:34:07
    Temat: Re: Porównanie różnych języków
    Od: Edek <e...@g...com>

    On 12/22/2011 11:33 AM, Andrzej Jarzabek wrote:
    >> To w specyficzny sposób wspiera tezę z mojego pierwszego posta: dzięki
    > Nie mam pojęcia o jaką tezę ci chodzi. Możesz przypomnieć?
    >

    Proszę, cytat:

    > że w Javie najczęściej występuje Agile,
    > którego jednym z głównych założeń jest niwelowanie
    > "technical debt" - potrzeba matką wynalazku?


    On 12/22/2011 11:33 AM, Andrzej Jarzabek wrote:
    >> Agile odkryliśmy abstrakcję API. Kiedyś odkryjemy, że API to jeszcze nie
    >> > wszystko i warstwy muszą działać razem.
    > Kiedyś może odkryjecie, że do tego właśnie służy abstrakcja API.

    Ale ja wiem, że do tego służy abstrakcja API. Nie będę Pana za bardzo
    wpieniać przed świętami, ok?

    Edek

strony : 1 ... 10 ... 14 . [ 15 ] . 16


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: