#20 — CRM, CMS, data science – jak odnaleźć się w gąszczu skrótów i pojęć w IT? – część 2

W tym odcinku omawiam szereg popularnych – z punktu widzenia biznesu – skrótów i pojęć ze świata IT, które nierzadko mogą wprawiać w zakłopotanie.

💡
Spodobał Ci się ten odcinek? Zasubskrybuj mój podcast na swojej ulubionej platformie i podziel się nim ze znajomymi!

Transkrypcja odcinka

Cześć, nazywam się Krzysztof Rychlicki-Kicior i witam cię serdecznie w podcaście „Software z każdej strony”, w którym dowiesz się, jak łączą się ze sobą świat biznesu i IT.

To jest odcinek dwudziesty - CRM, CMS, data science - ja odnaleźć się w gąszczu skrótów i pojęć IT - część druga.

W tym odcinku kontynuuję omówienie szeregu popularnych - z punktu widzenia biznesu - skrótów i pojęć ze świata IT, które nierzadko mogą wprawiać w zakłopotanie. Ponownie - z niektórymi z nich mogłeś/mogłaś się już spotkać, natomiast, zwłaszcza w tym odcinku, mogę powiedzieć, że diabeł tkwi w szczegółach, pojawi się sporo niuansów i tak naprawdę będę mówił o pojęciach dość podobnych do siebie, więc tym bardziej szczegóły mają znaczenie. A dlaczego? Bo dziś będę się zajmował pojęciami ze świata danych - ich przetwarzania i analizy. Dodam też, że te wszystkie pojęcia, które dzisiaj padną, to nie są wzory znane z fizyki czy też matematyczne aksjomaty, można interpretować je nieco inaczej, więc nie zdziwcie się, jeśli spotkacie gdzieś w Internecie czy na jakichś webinarach, z innymi definicjami, natomiast mi przede wszystkim zależy na pokazaniu pewnym różnic między nimi, jak chociażby - czym różni się data science od data miningu. Przejdźmy do rzeczy.

W przypadku różnicowania pojęć związanych z przetwarzaniem danych, nie da się ukryć, że ważne znaczenie ma historia. Nierzadko okazuje się, że pewne konkretne metody były używane już kilkadziesiąt lat temu w podobnej czy wręcz w takiej samej formie, ale w wyniku ponownego odkrycia, renesansu jakichś metod czy pojęć lub również w przypadku postępu technologicznego, jak w przypadku sztucznych sieci neuronowych, gdzie wiele pomógł między innymi postęp w zakresie kart graficznych, pojawienie się platformy CUDA, opracowanej przez Nvidię i właśnie takie też sytuacje, jak ten postęp, tchnęły nowe życie w świat sieci neuronowych.

Historycznie rzecz ujmując, zacznę od pojęcia data mining-u, czyli eksploracji danych. Pojęcie to dotyczy pozyskiwania wiedzy ze zbiorów danych, natomiast z reguły są to zbiory wykraczające poza pojedyncze bazy danych, które na przykład - jedna baza danych reprezentuje sklep internetowy, którego baza danych jest oparta na technologii PostgreSQL, MySQL czy Oracle, natomiast w przypadku data mining-u mówimy raczej o hurtowniach danych, tu pojęcie poboczne, które w hurtowniach głównym celem jest gromadzenie wszystkich danych organizacji, które często są rozsiane po różnych bazach danych, różnych rodzajów - mogą to być bazy relacyjne, nie relacyjne, mogą to być jakieś katalogi danych i celem hurtowni jest analiza, przeszukiwanie i wyciąganie wniosków, czyli to, co tak naprawdę jest celem data mining-u. Data mining, hurtownie danych - to są takie pojęcia, siłą rzecz, ze sobą związane.

Data mining ma duże znaczenie, zwłaszcza w większych organizacjach, bo to właśnie tam mamy do czynienia z wieloma źródłami danych, często też dość rozbudowanymi. W małych organizacjach może po prostu brakować danych, żeby przeprowadzić sensowną ich eksploracja. W dużych organizacjach dane mogą być zbierane przez lata, a nawet dekady, a jednocześnie mogą nie być szerzej analizowane. Możemy na przykład mieć historię sprzedaży, która przez wiele lat była używana w jakiś prosty sposób, choćby po to, żeby wiedzieć ile podatku musimy odprowadzić, ale tak naprawdę w tych źródłach danych, mogą tkwić niezwykle przydatne i ważne informacje - na przykład preferencje i zachowania klientów, na podstawie których jesteśmy w stanie stworzyć lepsze oferty i nawet nowe usługi. Do technik używanych w ramach data miningu można zaliczyć zarówno metody sztucznej inteligencji tak jak sieci neuronowe czy metody ewolucyjne, ale do data mining-u możemy też zaliczyć choćby metodę wizualizacji danych czy bardziej klasyczne metody statystyczne. Tak naprawdę nie powiedziałbym, że data mining to metoda XYZ i nic więcej. Kluczowe jest uzasadnienie, powód, przyczyna, dla której ta eksplorację wykonujemy. W przypadku eksploracji danych chcemy znaleźć nieznane wcześniej powiązania, zależności czy też reguły, które pozwolą nam usprawnić działanie naszej organizacji, czyli bawimy się, krótko mówiąc, w takich detektywów danych.

Od razu przejdę do pokrewnego pojęcia, czyli data science, które to, myślę zgodzicie się ze mną, w ostatnich latach kilku-kilkunastu, około dziesięciu, można spotkać o wiele częściej, natomiast jest to pojęcie dość pokrewne i podobne do eksploracji danych, czyli data mining-u. Często w data mining-u i data science stosuje się podobne metody, natomiast tym wyróżnikiem pojęcia data science ten wyróżnik sformułował bym nieco inaczej. Celem data science jest rozwiązanie pewnych konkretnych problemów, które mogą być postawione przez władze organizacji przez jakiś zarząd, czyli mamy jakiś konkretny problem biznesowy i chcemy go rozwiązać za pomocą tych metod, które omówiłem przy data mining-u. Podczas kiedy celem eksploracji danych jest znalezienie tych reguł, czyli można powiedzieć, że eksploracja danych w pewnym sensie koncentruje się na znalezieniu reguł, znalezieniu pewnych zależności i to jest ten problem biznesowy, który rozwiązujemy eksploracją danych, podczas gdy w świecie data science w pewnym sensie nie ograniczamy się tylko do tego, problemy postawione przed data scientistami, czyli takimi naukowcami danych, po prostu osobami zajmującymi się data science, mogą być o wiele bardziej zróżnicowane. Warto też dodać, że tak, jak wspomniałem, że data mining wiąże się mocno z hurtowniami danych, tak data science nie musi wcale pracować na takich ogromnych zbiorach danych, więc czasami wręcz tych danych jest bardzo mało i to jest prawdziwe wyzwanie jak rozwiązać jakiś problem biznesowy, jak na przykład zaklasyfikować prawidłowo bądź nieprawidłowo wyprodukowane towary, mają niewiele - kilkadziesiąt/kilkaset zdjęć przykładowych do nauki sieci neuronowej. To jest też bardzo ciekawe wyzwanie.

Pojęciem nieco innym, żeby już tak nie podawać raz za razem bardzo podobnych definicji, jest migracja danych. Obecnie o migracjach danych mówi się bardzo dużo zwłaszcza w kontekście popularyzacji chmur, takich jak AWS, chmura Googlowa czy chmura Microsoftu, czyli Azure - to jest pojęcie, które można rozumieć w bardzo różnych kontekstach, jeśli chodzi o migrację. Z jednej strony bywają to bardzo proste procedury, które wiążą się z przeniesieniem na przykład bazy danych pomiędzy dwoma serwerami, komputerami czy nawet przeniesieniem jakiegoś prostego katalogu z danymi. To też jest migracja, choć niezwykle prosta. Z drugiej strony procesem migracji możemy nazwać rozbudowane, trwające często wiele tygodni czy miesięcy procedury, mające też na celu nie tylko fizyczne przeniesienie danych, ale także ich pewne przekształcenie. Tu wręcz mówi się o takich procesach ETL, czyli Extract-Transform-Load. Wydobądź dane, przekształć je i load - załaduj do miejsca docelowego. Oczywiście występują też formy pośrednie pomiędzy tymi dwoma skrajnościami, na przykład związane z koniecznością migracji z jednego systemu bazy danych, na przykład Oracle’a to Postgresa i tutaj ważne jest to, że z jednej strony są to systemu podobne, ale są między nimi pewne różnice i znowu w tych szczegółach tkwi ten nieszczęsny diabeł.

Tak, jak wspomniałem, osobny, dodatkowy wręcz wymiar do całego procesu migracji wnosi kwestia chmury, bo właśnie coraz częściej można spotkać się z zagadnieniami migracji danych ze środowisk On Premise, czyli w sytuacji, gdy mamy oprogramowanie na własnych serwerach, w naszej organizacji, w jakiś serwerowni, do usług oferowanych w chmurze. Te procesy są na ogół o tyle bardziej złożone, że nie mówimy tylko o takim fizycznym przeniesieniu z jednego komputera na drugi, tylko struktura, sposób działania naszych starych serwerów posiadających jakieś określone systemy operacyjne, ta struktura może się znacząco różnić w porównaniu od usług, które są instalowane i używane w środowiskach chmurowych i poza samym procesem migracji musimy zmapować, czyli powiązać ze sobą oba te dość znacząco różniące się od siebie środowiska - stare serwery z tymi nowymi usługami chmurowymi, co wymaga sporej wiedzy i doświadczenia w zakresie obsługi obu tych różnych ekosystemów.

Przez moment zrobiło się poważnie, ale wracamy do buzzword-ów - żartuję oczywiście, ale tak nie do końca, bo kolejne pojęcie, które chcę poruszyć, to Big Data. jest to pojęcie, które w bardzo zwiększy sposób określa zbiory danych o następującej charakterystyce: muszą to być zbiory duże, różnorodne pod względem treści, rodzajów treści i oczekuje się od nich, że będą mogły być przetwarzane w bardzo szybki sposób. Naturalnie znowu jest to pewne pojęcie względne, to nie jest ścisła definicja, więc bez przesady, jeżeli mamy ogromne zbiory danych wymagające szybkiego przetwarzania, nie będą one bardzo różnorodne, to nikt nam tej etykietki nie odbierze, a mówię tutaj o pewnych przyjętych standardach, natomiast znowu - to jest pewien buzzword, w którego rzadko kiedy da się odnaleźć taką analogię do wcześniejszych pojęć, zwłaszcza jeśli chodzi o eksplorację danych, natomiast popularyzacja pojęcia Big Data myślę, że wiąże się z taką gwałtowną popularyzacja Internetu i znaczącym wzrostem ilości nie tylko danych przesyłanych w Internecie, ale wytwarzanych i potem przechowywanych, co jest konsekwencją rozwoju Web 2.0. W momencie, kiedy wszyscy zaczęliśmy pisać posty na Facebooku, wrzucać zdjęcia na Instagrama, krótko mówiąc - te setki milionów czy nawet miliardy zaczęły tworzyć treści, nawet każda z nich w niedużym zakresie, to zaczęły powstawać bazy danych, które są po prostu gigantyczne. Techniki analiz danych tak naprawdę pozostają podobne, jak w przypadku tych wcześniejszych pojęć, natomiast to, co jest ważne, to że kiedy pada pojęcie Big Data, to automatycznie powinniśmy przestawić się na - przede wszystkim wielkość zbiorów danych i zamiast małych bazach danych liczących setki tysięcy czy miliony rekordów, powinniśmy myśleć zbiorach danych, które mają często miliardy, biliony, a ich rozmiar jest liczony w tera, peta czy nawet eksabajtach, czyli liczbach już dość znaczących.

W tym miejscu krótko jeszcze wspomnę o takim też ważnym pojęciu, jakim jest Business Intelligence, BI - skrótu też się często używa, która to, inteligencja biznesowa chciałoby się rzec, jest używana do przekształcania takich surowych danych, zlokalizowanych w bazach danych, na informacje i wiedzę - to taka ładna definicja, którą gdzieś spotkałem. Znowu - jaki jest ten wyróżnik? Narzędzia BI często spotyka się w sytuacjach, w których mamy firmę, nawet do obsługi narzędzi BI nie potrzeba jakichś wielkich kompetencji informatycznych, natomiast takim celem narzędzi BI, z którym często się spotykamy jest to, żeby móc przygotowywać mniej czy bardziej złożone podsumowania, często dla jakichś osób decyzyjnych, takie executive summary, bo na przykład zarząd chce wiedzieć na podstawie naszej bazy danych zawierającej historię zamówień i naszej sprzedaży, gdzie warto otworzyć nowe placówki, bo na przykład jest tam ciągły ruch, a które placówki naszej firmy warto by zamknąć, bo tego ruchu nie ma. Albo można by się nawet pokusić o jakieś kwestie prognoz, przewidywania, nie chodzi tylko o proste raporty z Excela, natomiast chodzi o to, żeby z jak najprostszych danych czy też jak najmniej przetworzonych danych, wyciągać jak najbardziej wartościowe biznesowo wnioski. I od tego jest właśnie BI.

Na zakończenie omówię kilka pojęć związanych ze sobą i takich, które już sygnalizowałem w poprzednich odcinkach, natomiast podsumuję też krótko tutaj, bo to jest - nie da się ukryć - mój konik, a mianowicie chodzi o pojęcia ze świata sztucznej inteligencji, a dokładniej o samą sztuczną inteligencją, jak możemy ją rozumieć, ale także o pojęcia nauczania maszynowego czy też nauczania głębokiego, które już w ostatnich latach zyskuje na popularności. Jak to w końcu z nimi jest? Jaka jest relacja między tymi pojęciami? Często można się spotkać z tym, ze sztuczną inteligencję i nauczanie maszynowe wymawia się wręcz jak brata i siostrę na jednym wdechu, a to też - choć są to pojęcia powiązane - nie są to pojęcia tożsame i identyczne.

Sztuczna inteligencja to ogół metod i technik, które pozwalają na realizację działań na co dzień wykonywanych przez ludzi, w sposób inteligentny i racjonalny. W szczególności chodzi o rozwiązywanie ogólnych problemów, co do których nie istnieją, nie zostały do tej pory stworzone, precyzyjne rozwiązania, precyzyjne algorytmy. Pewnie po wysłuchaniu tej definicji można stwierdzić, drogi słuchaczu/słuchaczko, że o co tutaj chodzi. Nie jest to bardzo precyzyjne i ja się z tym zgodzę, bo w zasadzie jest to troszkę celowo pojęcie bardzo pojemne, nie do końca precyzyjne, bo nie istnieje taki jeden kanon czy charakterystyka dla tych metod, że coś jest, ze jak na przykład analizujemy obraz to zawsze będzie AI, bądź w drugą stronę - jak nie zanalizujemy obrazu to nie. Chodzi natomiast o to, żeby z katalogu operacji, z katalogu działań, które komputer jest w stanie zrealizować, wyłączyć pewne rodzaje, które faktycznie nie zaliczamy do sztucznej inteligencji, bo zostały zaaprobowane pewne bardzo konkretne algorytmy, czyli takie rozwiązania. Świetnym przykładem jest algorytm sortowania, czyli porządkowania. Nie da się ukryć, że jeżeli na przykład dostaniemy listę nazwisk i imion i ktoś nam każe je uporządkować od A do Z, to to wymaga pewnej inteligencji. jednocześnie algorytm sortowania, bo o nim właśnie mówię, jest to jeden z absolutnie klasycznych rodzajów algorytmów, to w zasadzie nie ma jednego algorytmu sortowania, mamy ich dziesiątki, natomiast jeśli chodzi o problem, który sortowanie rozwiązuje, jest to coś, co istnieje w informatyce od dawna i choć wydaje się, że potrzeba inteligencji, żeby to rozwiązać, to w praktyce istnieją bardzo precyzyjne, bardzo dokładne algorytmy, które robią to w sposób do bólu przewidywalne i nie jest to przykład sztucznej inteligencji.

Pozwolę sobie tu na taką troszkę kucharską analogię. Jeżeli wykonywaliśmy przepis z książki kucharskiej z idealna precyzja, jak komputer, zawsze dodając dokładnie te same składniki, w takim samych proporcjach, wykonując te same czynności, mieszając tą samą łyżką taką samą liczbę razy i tak dalej i tak dalej, to zachowalibyśmy się jak taki algorytm sortowania - wszystko jest precyzyjnie określone. Jeżeli miałbym w jakiś sposób, kucharsko, omówić jakieś działa sztuczna inteligencja, to w tym przypadku mielibyśmy postawiony przed sobą cel - na przykład, załóżmy, że tym przepisem jest zrobienie jajecznicy, natomiast nie mielibyśmy tej precyzyjnej listy kroków, a raczej bazowalibyśmy na naszych wcześniejszych doświadczeniach, na pewnych wytycznych, natomiast skupilibyśmy się bardziej na rezultacie, który chcemy osiągnąć, aniżeli na odtworzeniu pewnej precyzyjnej listy korków. Może się wydawać, że ta druga metoda jest gorsza, bo skoro mamy dokładny przepis, to po co bawić się w takie podejście, natomiast jednym z najważniejszych aspektów sztucznej inteligencji jest to, że ona przyda nam się nie tylko w bardzo określonej sytuacji, na przykład zrobienia jajecznicy według przepisu, ale jak dostatecznie z nią popracujemy i dostatecznie dobrze ją zrobimy, to ona odnajdzie się również w sytuacjach, które nie zostały wcześniej przewidziane. Jeżeli okazałoby się, że naszą klasyczną jajecznicę na maśle chcemy rozszerzyć o chociażby suszone pomidory albo świeżo zebrane kurki, to w przypadku tego pierwszego przepisu, musielibyśmy zrobić nowy przepis - widząc ten stary, zmodyfikować go i wtedy wdrożyć do działania. Tymczasem w przypadku rozwiązań inteligentnych moglibyśmy liczyć na to, że taki mechanizm będzie w stanie - może nie od razu, ale po pewnym czasie - nauczyć się rozwiązania, dojść do tego rozwiązania, w pewnym sensie samodzielnie, czyli bez potrzeby takiej jawnej ingerencji.

Przechodząc do bardziej konkretnego omówienia - sztuczna inteligencja jest pojęciem najszerszym, w którym możemy wyróżnić wiele dziedzin, wiele technik, całkiem zróżnicowanych, takich jak logika rozmyta, systemy wnioskowania, metody probabilistyczne czy wreszcie szereg metod zaliczanych od nauczania maszynowego, czyli do maszyn learningu, w skrócie ML. Tutaj widzimy już, że relacja pomiędzy nauczaniem maszynowym a sztuczną inteligencją jest taka, że jest to po prostu cześć - nauczanie maszynowe jest częścią sztucznej inteligencji, natomiast nie jest to tożsame, nie jest to całość, to nie jest tak, że każdy mechanizm, każda metoda sztucznej inteligencji musi polegać na nauczaniu maszynowym. I znowu – w ramach nauczania maszynowego też wyróżniamy szereg grup, metod zaliczanych do ML, takich jak chociażby sztuczne sieci neuronowe, maszyny wektorów wspierających, klasyfikatora Bayesa i wiele innych. natomiast tutaj też można powiedzieć, że warto zauważyć, że nauczanie maszynowe to nie tylko sieć neuronowa, też znowu mamy szereg innych metod, choć te sieci neuronowe, zwłaszcza w ostatnich latach, przeżywają niewątpliwie renesans. A o co chodzi w nauczaniu maszynowym? Bo te niewątpliwie ładnie brzmiące pojęcia same w sobie wiele wam nie powiedzą. Otóż, w nauczaniu maszynowych chodzi o to, aby wyciągnąć pewną wiedzę na temat rozwiązywanych problemów, różne zależności, w sposób automatyczny, na podstawie przedstawianych danych. Na przykład jesteśmy w stanie nauczyć klasyfikator, choćby taką sieć neuronową, jaki stan emocjonalny odczuwa mówca. Jeżeli weźmiemy sobie na przykład tysiąc wypowiedzi z jakiegoś języka i przedstawmy te wypowiedzi, w odpowiedni sposób je przetworzymy i powiemy takiej sieci neuronowej, ze zdaniem numer 1 to zdanie reprezentujące stan szczęścia, zdanie numer 2 to stan złości, z danie numer 3 to stan znudzenia i tak dalej i tak dalej, to jeżeli ta baza jest dobra i klasyfikator jest dobrze przygotowany, to po nauczeniu się tego tysiąca wypowiedzi taka sieć powinna dobrze radzić sobie również z nowymi wypowiedziami, których nigdy nie widziała, z którymi nigdy nie miała kontaktu. Bardzo prostym przykładem, też z życia codziennego, jest chociażby klasyfikacja maili jako smaku. To, że wiadomości trafiają do katalogu spam, a nie do katalogu odebrane, to też efekt nauczania maszynowego i w momencie, w którym oznaczasz daną wiadomość jako spam, ewentualnie odwrotnie - przenosisz wiadomość ze spamu do odebranych, to de facto też dajesz informację zwrotną, dzięki której dana metoda nauczania maszynowego będzie działać lepiej, więc też de facto uczestniczysz w procesie nauki, takiej sieci czy ogólnie takiego algorytmu nauczania maszynowego.

A jak się ma do tego deep learning czyli nauczanie głębokie? To z kolei jest fragment nauczania maszynowego, czyli tak podsumowując - nauczanie głębokie to część nauczania maszynowego, które samo w sobie jest częścią sztucznej inteligencji. I skąd wzięło się nauczanie głębokie? Otóż, po wielu latach postępów w nauczaniu maszynowym, zwłaszcza w okolicach lat 80., nastąpiła taka zima w tych badaniach, czyli po prostu okazało się, że nie jest tak łatwo rozwiązać problemy za pomocą tych narzędzi nauczania maszynowego w ówczesnych czasach, natomiast dzięki zarówno rozwojowi sieci neuronowych, ale dzięki rozwojowi technologicznemu wspomnianych kartach graficznych i kilku nieistotnych czynnikach, od w zasadzie początku drugiej dekady tego stulecia, czyli lata 2010-2012, obserwujemy faktyczne odrodzenie rozwiązań opartych zwłaszcza o sieci neuronowe, bo o ile wcześniejsze sieci, wcześnie projektowane, miały dosyć prostą strukturę, która była niewystarczająca, by rozwiązywać różne klasy problemów, o tyle te nowe sieci są gigantyczne, wielokrotnie większe od tych z lat 80., teraz można z nich korzystać, bo i sprzęt jest dużo bardziej rozbudowany i jesteśmy w stanie w deep learningu rozwiązywać problemy zwłaszcza związane z przetwarzanie obrazów, dźwięku czy audio, na przykład klasyfikować obrazy pod kątem tego, co się na nich znajduje, taki klasyczny, zabawkowy problem, od którego zaczyna się często nauka - klasyfikacja zdjęć, czy mamy do czynienia z psem, czy z kotem i ucząc taką głęboką sieć neuronową, że taki obraz to jest pies, a taki to jest kot, jesteśmy w stanie osiągać naprawdę skuteczności dziewięćdziesięciu kilku procent. Innym, bardziej skomplikowanym przykładem, są gatunki psów, gdzie tych gatunków jest już kilkadziesiąt i nie jest to może tak łatwe zadanie, jak to pierwsze, ale też te sieci neuronowe dają sobie radę. Poza tym mówimy o lokalizacji obiektów na obrazku, o tworzeniu systemów rekomendacyjnych, ale mamy też cały szereg sieci generatywnych, czyli możemy mówić albo o generowaniu treści, albo ich analizie i tutaj mamy te różne narzędzia, które na przykład generują nam jakieś obrazy na podstawie opisu - to wszystko są głębokie sieci neuronowe, które są w stanie tworzyć treść, chociaż to nie jest takie prawdziwe tworzenie, tak jak człowiek tworzy sztukę, to jest po prostu przetwarzanie już istniejących grafik czy dźwięku i raczej taka ciekawa, ale jednak odtwórcza rola. Możliwości deep learningu są ogromne, ale ponownie, tak jak w przypadku nauczania maszynowego, wszystko zależy od danych, którymi dysponujemy.

Na tym kończymy ten dwuczęściowy cykl, jest to też taki mały jubileusz, bo za nami już 20 odcinków, niedługo będzie też rok pracy i cóż mogę powiedzieć? Kolejne ciekawe inicjatywy są przed nami, nie chcę zdradzać wszystkich szczegółów, natomiast na pewno będziemy intensywniej korzysta z naszego studia, w końcu po coś tyle tego sprzętu zgromadziliśmy, będziemy chcieli zapraszać więcej gości i rozmawiać z nimi na ciekawe tematy, także tym bardziej zachęcamy do zgłaszania różnych propozycji, to nawet nie musi być cały temat odcinka - to może kwestia, jakieś zdanie, wypowiedź do skomentowania, którą można wpleść w bardziej rozbudowane tematy. Chcę mówić o tym, co jest dla was interesujące, więc wasz feedback jest po prostu bezcenny.

Na dziś to już wszystko, jak zawsze dziękuję za uwagę, kłaniam się nisko i do usłyszenia.