Hejto.pl
Dodaj post

Wpisz coś do wyszukania (minimum 2 znaki)

#naukaprogramowania

Zawodowiec

w Programowanie

5piorunów

Czym jest Protocol Buffers? - devszczepaniak.pl

Protocol Buffers lub też Protobuf to ciekawa alternatywa dla formatów takich jak JSON czy XML. W najnowszym artykule na blogu przedstawię Ci: :point_right: koncepcję, jaka stoi za Protobufem; :point_right: dlaczego warto się nim zainteresować; :point_right: przykład aplikacji

Gruba ryba

w Programowanie

2piorunów

Siemka, czy kojarzycie jakieś materiały w języku polskim tłumaczące podstawy programowania? Zmienne, tablice, pętlę, takie pierdoły. Język w sumie dowolny, ale spodziewam się że jak coś będzie to pewnie dla pythona.

Inb4: "naucz się angielskiego i przeczytaj XYZ" to nie jest rekomendacja materiałów w języku polskim.

Specjalista1piorunów

Chatgpt

Gruba ryba0piorunów

@Tomek07 to jest moim zdaniem krok drugi, bo w sumie jakie ta osoba miałaby zadać pierwsze pytanie, skoro nic nie wie?

Specjalista1piorunów

@wombatDaiquiri Jak zacząć naukę z programowaniem. Daj instrukcje krok po kroku z przykładami

Zawodowiec2piorunów

Za moich czasów to się polecało Mirosława Zelenta - tłumaczy jak chłop krowie na rowie. OTOH pamiętam też zesranie na forach że pokazywał to na C++ i były tam też jakieś zarzuty o bad practices. Niemniej jednak mnie wtedy nauczył więc ode mnie polecanko.

Programowanie w C++Blog informatyczny Mirosława ZelentaMiroslawzelent
Zawodowiec1piorunów

Z kolei na studiach, gdy mieliśmy podstawy programowania to mieliśmy je 2 razy (xD) i raz w Javie i raz w Pythonie. Patrząc jak reszta grupy przyswajała materiał, to dowolna cegła do Pythona traktująca temat od zera i kompleksowo powinna być łatwo przyswajalna dla kogoś, kto o programowaniu nie ma pojęcia. Javę bym omijał szerokim łukiem na pierwszy język (spróbuj komuś wytłumaczyć dlaczego hello world wymaga 18 linii kodu + pierdolenie się z postawieniem wszystkiego by to uruchomić).

Pokaż więcej komentarzy (27)

Zawodowiec

w Programowanie

5piorunów

Wzorzec projektowy Visitor - devszczepaniak.pl

Wzorzec projektowy Visitor to jeden z tych wzorców, z którego zrozumieniem i opisaniem miałem spory problem. Ostatecznie jednak efekt uważam za zadowalający, a sprawdzić go możesz, klikając w podlinkowany artykuł. W artykule dowiesz się: :point_right: Jakie są cele i założenia wzorca

Zawodowiec

w Programowanie

8piorunów

Wzorzec projektowy Template Method - devszczepaniak.pl

Template Method jest kolejnym wzorcem, który zdecydowałem się opisać na swoim blogu. Jest to jeden z mniej lubianych przeze mnie wzorców projektowych. Jaka jest jego charakterystyka, dlaczego za nim nie przepadam oraz jakie są dla niego alternatywy, dowiesz się z najnowszego artykułu.

Zawodowiec

w Programowanie

1piorunów

Asynchroniczne procesowanie webhooków - devszczepaniak.pl

Ostatnio miałem okazję nieco więcej popracować nad integracją z zewnętrznym serwisem wykorzystującym mechanizm webhooków. Napotkałem problemy wynikające z synchronicznego przetwarzania zapytań. W uporaniu się z nimi pomogło mi odejście asynchroniczne, a moimi przemyśleniami i

Zawodowiec

w Programowanie

6piorunów

Jak nie wpaść w pułapki nauki? - devszczepaniak.pl

Tym artykułem mogę sobie strzelić w kolano, patrząc na to, czym zajmuję się na swoim blogu. Jednak pułapki, w jakie można wpaść, ucząc się nowych rzeczy, mogą przynieść skutek odwrotny od zamierzonego. W artykule poruszyłem takie tematy jak: :fire: Tutorial hell - pułapka wielu

Zawodowiec

w Programowanie

6piorunów

Wzorzec projektowy Kompozyt - devszczepaniak.pl

Wzorzec projektowy Kompozyt przydaje się w aplikacjach, gdzie wykorzystywane są struktury drzewiaste. W podlinkowanym artykule dowiesz się, z czego składa się Kompozyt oraz pokażę Ci przykład prostej aplikacji implementującej go. #programowanie #informatyka #programista15k

Zawodowiec

w Programowanie

1piorunów

Aditya Y. Bhargava - Algorytmy: Ilustrowany przewodnik - dla kogo jest ta książka? - devszczepaniak.pl

Gdybym miał polecić książkę o algorytmach, jedną z propozycji byłaby pozycja "Algorytmy: Ilustrowany przewodnik". Jednak uważam, że jest to książka dedykowana określonej grupie odbiorców. Dlaczego uważam, że warto poświęcić uwagę właśnie tej książce i komu

Inspirator

w Hydepark

4piorunów

Cześć,
Skończyłem mgr inż. na politechnice wrocławskiej na kierunku energetyka, od kilku lat pracuję w zawodzie jednak osiągnąłem limit 15 k brutto i wiem że ciężko osiągnąć wyższe zarobki na etacie. Dodatkowo praca wiąże się z dużą ilością wyjazdów i pracą po 10h dziennie, a jak pojawią mi się dzieci to szkoda mi będzie przegapić ich dorastania. Od jakiegoś czasu działam w kwestii przebranżowienia na devops, umiem Linux, python, podstawy sieci (uczę się do CCNA), gita.
Zauważyłem że Merito wypuściło studia podyplomowe w zakresie DevOps I wyglądają całkiem sensownie https://www.merito.pl/wroclaw/studia-i-szkolenia/studia-podyplomowe/kierunki/cloud-devops-engineer-expert/program-studiow
Co o tym uważacie? Warto czy kasa wyrzucona w błoto?
Ktoś z was robił podyplomowe studia z informatyki?

Gruba ryba3piorunów

@Dartof nie robiłem żadnych studiów nigdy i nie były mi potrzebne żeby zarabiać ponad 2x tyle co Ty jako programista. Zajmij się lepiej networkingiem, poznawaniem ludzi którzy zarabiają więcej od Ciebie i pytaniem ich czy nie rekrutują w ich zespole/firmie ludzi z Twoim skillsetem.

Ilość poznanych technologii != Wysokość wypłaty

Nie ma za co.

Osobistość3piorunów

Dej se luz chłopie. Całkowite przebranżowienie w momencie posiadania specjalistycznej wiedzy jest bez sensu. Spędzisz czas na uczeniu się czegoś nowego zamiast zarabiać na nadgodzinach w tym czasie i mieć hajs na purchlaki :grinning: Zresztą 15k brutto u nas to pewnie z 5k netto na zachodzie jak dobrze poszukasz.

Pokaż więcej komentarzy (4)

Zawodowiec

w Programowanie

3piorunów

Czy później znaczy lepiej? O sztuce podejmowania decyzji - devszczepaniak.pl

Jak się człowiek spieszy, to się diabeł cieszy! Z kolei na pewno nie cieszy się programista, klient oraz biznes, którzy będą ponosić konsekwencje. W najnowszym artykule na blogu dzielę się swoimi przemyśleniami o odwlekaniu w czasie decyzji podejmowanych w projektach IT. Pokazuję

Gruba ryba

w Programowanie

5piorunów

może ktoś z   ma jakieś doświadczenia z postgres-operatorem od Zalando https://github.com/zalando/postgres-operator/tree/master i mógłby się podzielić wrażeniami?

Use-case: chcę mieć platformę do taniego i szybkiego publikowania swoich aplikacji w internecie. W tym celu tworzę sobie mini-datacenter w domu oparte na kubernetesie, chwilowo składające się z jednego komputera. Dostęp do niego z publicznego internetu robię przez Cloudflare Tunnel https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/

Chcę żeby setup był rozszerzalny i chcę zachować jak najmniejszy stack technologiczny, bo nie lubię się uczyć rzeczy "od zera". Obecnie zastanawiam się jak załatwić temat relacyjnej bazy danych. Myślałem nad postawieniem postgresa bezpośrednio na baremetalu, ale wydaje mi się że networking żeby potencjalnie dopuścić do niego ruch z kolejnych nodów w przyszłości to będzie tragedia.

     

Fanatyk2piorunów

@wombatDaiquiri - ja Kubernetesa mam po dziurki w pracy, żeby się z nim jeszcze w domu pierdzielić :stuck_out_tongue_winking_eye:
Oczywiście z tym Postgres Operatorem od Zalando nie miałem do czynienia - ale patrząc po README.md z GitHuba to wygląda dobrze - możesz opisać co dokładnie Cię w tym urzekło do Twoich zastosowań jak masz tylko jedną maszynę?
Ja jako, że jestem minimalistą to używam Podmana i uruchamiam bardziej skomplikowane rzeczy w podach.
Na Malince 5 z 8GB ramu mam teraz właśnie Postgresa bo postawiłem kilka rzeczy i codzienny backup robię na mojego Bieda-NASa rsynciem (który później też rsynciem jest backupowany na większy serwer tak na wszelki wypadek - już kiedyś opisywałem mój setup i dlaczego tak akurat robię) - mi starcza 🤷
Generalnie bardziej staram się zrozumieć co Ty tam próbujesz osiągnąć z tym swoim setupem bo cały wysiłek, który w to wkładasz oceniam bardzo pozytywnie - nie każdemu się chce i nie każdy potrafi - zwłaszcza jeśli to co robisz ma Ci się przydać w pracy i by zarabiać lepszą kasę :grinning:

Gruba ryba1piorunów

@koszotorobur próbuję się wyzbyć metody szukania "poprawnego rozwiązania" więc bardzo dziękuję Ci za Twojego posta.

Generalnie chciałem postawić jakoś instancję bazy danych żebym mógł z niej korzystać w kontenerkach. A dzięki Twojej sugestii zmieniłem trochę zapytanie do google i dostałem tutorial na prostszych komponentach które już z nam więc plan właśnie uległ zmianie https://www.digitalocean.com/community/tutorials/how-to-deploy-postgres-to-kubernetes-cluster

Wysokopoziomowo - jestem programistą. Jestem nieskromnie mówiąc niezły w pisanie programów. Ale całe środowisko w którym te programy były uruchamiane były własnością firmy w której pracowałem. W ten sposób zawsze uczyłem się procedur które ktoś mi przygotował, ale na własne potrzeby nadal korzystałem z `./binarka &` bo w sumie działa.

No i z wiekiem odczuwam potrzebę podzielenia się wiedzą jak tworzyć cyfrowe produkty, ale do tego potrzebuję środowiska uruchomieniowego które uczeń będzie mógł zreplikować i rozszerzać według własnych potrzeb. A i mi się przyda wyrobić opinię i usystematyzować stack bo często ciekawe pomysły upadają jak staję przed wizją pierdół do wykonania zanim się zaczną ciekawe zadania.

How to Deploy Postgres to Kubernetes Cluster | DigitalOceanThis guide will explore the step-by-step process of deploying PostgreSQL on a Kubernetes cluster. Whether you are a developer, DevOps engineer, or system adm…Digitalocean
Fanatyk2piorunów

@wombatDaiquiri - widzę, że zacząłeś od bardzo wysokiego poziomu abstrakcji i komplikacji, którym jest Kubernetes (nawet w konfiguracji Sinlge Node K8s) - dobrze go oczywiście znać ale do swoich zastosowań często jest to overkill jeśli nie wybrałeś tego rozwiązania świadomie ze wglądu na benefity, które faktycznie Tobie oferuje (a dalej musisz płacić cenę za skomplikowanie projektu).

Ja od zeszłego roku preferuję Podmana zamiast Dockera gdyż Docker wymaga dwóch daemonów ciągle działających na systemie (dockerd oraz containerd) a Podman jest daemonless i może uruchamiać aplikacje od razu w podach (i też można użyć z nim Compose).

Jeśli chodzi o super prosty deployment Postgresa (jak nie masz klastra K8s) to możesz uruchomić go w łatwy sposób z obrazu kontenera tak by mieć data persistance oraz być w stanie zrobić backup.

Utwórz dwa foldery na serwerze ~/postgres_data oraz ~/postgres_backup.

Uruchom kontener:
>podman run -p 5432:5432 --name postgres -v ~/postgres_data:/var/lib/postgresql/data -v ~/postgres_backup:/home -e POSTGRES_PASSWORD=<YOUR_PASS> -d docker.io/library/postgres:alpine

A tak wywołać psql w działającym kontenerze:
>podman exec -it <CONTAINER_NAME_OR_ID> psql -U postgres

Od tego kroku, droga jest prosta uruchamiania w ten sam sposób narzędza pg_dump lub pg_dumpall czy pg_basebackup (i zrobienia backupu do folderu /home kontenera) a następnie potem zbackupowania dumpa z folderu ~/postgres_backup serwera na innego hosta przy pomocy narzędzia rsync.

Pokaż więcej komentarzy (4)

Zawodowiec

w Programowanie

1piorunów

Keep it small, stupid - mój przepis na dobry Pull Request - devszczepaniak.pl

Tworzenie dobrych Pull Requestów to umiejętność, której nabycie wymaga czasu i praktyki. Gdybym miał opisać dobry Pull Request TYLKO jednym słowem, to odpowiedziałbym, że MAŁY. O tym, co rozumiem przez mały Pull Request, oraz o innych cechach, które według mnie wyróżniają

Zawodowiec

w Programowanie

6piorunów

Wzorzec projektowy Strategia - devszczepaniak.pl

Strategia to chyba jeden z rzadziej wykorzystywanych przeze mnie wzorców projektowych. Nie oznacza to jednak, że jest on bezużyteczny, wręcz przeciwnie. Strategia pozwala na wykorzystanie różnych algorytmów w zależności od danej sytuacji. Dobrze wykorzystana Strategia może być pomocna np.

Twórca

w Programowanie

1piorunów

Z czego korzystacie do testowania rest api(głównie chodzi o fuzzer lub coś w tym stylu i to lokalnie, bo chcę to automatyzować bez dostępu do świata)?

Używam serwisów napisanych w pythonie (pydantic + fastapi) i rust (actix + utoipa)

Obecnie korzystam z:

* https://github.com/matusf/openapi-fuzzer - działa tylko dla rustowego openapi, bo fastapi bazuje na jakimś starym dokumencie gdzie niektóre wartości mają inne typy niż walidatory oczekują i przez to się wysypuje. Problematyczne jest to że więcej logiki do weryfikacji mam właśnie od strony pythona i to właśnie chciałbym bardziej testować
* https://github.com/Endava/cats - ciekawy projekt, który ignoruje część błędów w schemacie openapi i pozwala na testowanie nawet niepoprawnego schematu. Działa na początku całkiem dobrze, bo znajduje najbardziej podstawowe błędy, jednak z czasem widać że celuje on bardziej w implementację testowania takich programów jak uvicorn/fastapi a nie samego programu użytkownika(np. jest masa fuzzerów które wysyłają śmieci w nagłówkach, dane z niepoprawnym kodowaniem etc.), a mnie interesują tylko dane które w miarę poprawne mogą zwrócić nieoczekiwany wynik

Poszukuję czegoś "myślącego" albo dającego takie pozory, by znaleźć błędy które powyższe programy pomijają i muszę ręcznie błedy te wyszukiwać, np. sytuację w której dodaję użytkownika i za pomocą zwróconego uuid kontynuowany jest proces testowania api

jakieś inne programy też testowałem, ale odbijałem się od nich bardzo szybko, bo trudno było je używać albo i nawet zainstalować




Gruba ryba1piorunów

@qarmin 
>a mnie interesują tylko dane które w miarę poprawne mogą zwrócić nieoczekiwany wynik

To się nazywa "domena biznesowa" i za to Ci płacą mordo ( ͡° ͜ʖ ͡°)

Pokaż więcej komentarzy (2)

Twórca

w Programowanie

3piorunów

Potrzebuję stworzyć prosty system logowania do serwera i dostępu do jego zasobów, który oczywiście powinien być bezpieczny, ale w miarę łatwo implementowalny.

Jako że nigdy się w aplikacjach warstwą sieciową nie zajmowałem, to mam problem ze znalezieniem odpowiedniej metody.

Na internecie jest masa poradników jak to zrobić, ale oczywiście dotyczą różnych frameworków jak i różnych metod(tokeny, sesje), więc akurat nie wszystko kojarzę.

Z tego co wnioskuję logika powinna wyglądać w ten sposób:

* W bazie użytkownika zostaje dodane login + posolone hasło
* Użytkownik próbuje zalogować się do serwera, więc w zapytaniu przesyła w body login + hasło
* Serwer weryfikuje czy w bazie dane się znajdują, jeśli tak, to generuje token przy pomocy sekretnego klucza, w którym wewnątrz jest zapisany login użytkownika i czas wygaśnięcia i zwraca go użytkownikowi
* Użytkownik otrzymuje klucz i następnie do każdego zapytania api dodaje go do nagłówka Authentication
* Serwer po otrzymaniu zapytania, sprawdza nagłówek i odpakowywuje login i czas wygaśnięcia tokena, jeśli token jest ciągle ważny, to wykonuje daną operację, jeśli nie to zwraca błąd
* Serwer dla każdego zapytania wymaga tego tokena(oczywiście oprócz resta do logowania)

Czy moje rozumowanie jest poprawne?




Zawodowiec1piorunów

@qarmin brzmi jak JWT. Domyślnie podpis JWT nie jest sprawdzany, więc twoja w tym głowa by to wymusić. Jak wspomniano wyżej; co złego jest w zwykłej sesji? Będzie najprościej

Twórca0piorunów

@Meverth Pewnie wychodzę w rozważaniach zbyt daleko, ale czy ciasteczka w przypadku wielu serwerów nie są problematyczne? Skoro jeden serwer otworzył sesję, to drugi raczej o niej nic nie wie i trzeba się bawić w przesyłanie danych o niej pomiędzy nimi(oczywiście jeśli dobrze rozumiem jak to działa).

W przypadku jwt każdy serwer może obsłużyć to zapytanie, bo nic się na nim związanego z tym konkretnym tokenem nie zapisuje

Zawodowiec1piorunów

@qarmin zależy co rozumiesz pod pojęciem 'wielu serwerów'. Możesz użyć wspólnego, rozproszonego cache do trzymania sesji. JWT ma też swoje problemy. Np. konto zostanie hacknięte i chciałbyś je dezaktywować, a token jest dalej ważny.

Gruba ryba0piorunów

@qarmin najprostszy i najbezpieczniejszy dostęp do serwera to klient SSH, z zablokowanym dostępem innym niż przez klucz. Ale ty piszesz o aplikacji webowej. Jeśli chcesz zapewnić dostęp do serwera za pomoacą aplikacji webowej, to zasoby które udostępni serwer będą ograniczone tylko do tego co wystawia aplikacja za pomocą interfejsu. Musisz się zastanowić co chcesz udostępnić, a potem pomyśleć o sposobie realizacji bo aplikacja to jeden ze sposobów. Poza tym jest wiele różnych darmowych aplikacji serwerowych do różnego typu zasobów. Filmy, pliki, Smart Home i różnego rodzaju czujniki, konsolowe sesje dostępowe. W zasadzie to co potrzeba?

Twórca0piorunów

@DexterFromLab Jako serwer, chodziło mi o serwer dla aplikacji(mobilnej/webowej), udostępniający zasoby do niej i logowanie użytkowników poprzez resty - czyli bardziej o aplikacja do obsługi takich zapytań a nie sprzet/system.

Gruba ryba0piorunów

@qarmin no to masz w springu np. moduł security i jak masz "serwer side rendering" to załatwia całą autoryzację, tokeny, klucze, szyfrowanie. Jeśli nie preferujesz żadnej konkretnej technologii to java jest spoko. Ale myślę z każdy wiodący framework webowy będzie kompleksowo obsługiwał sesje logowania. Django w pythonie na przykład, a w PHP to w sumie nie wiem co się teraz używa. Kiedyś używałem codeigniter.

Pokaż więcej komentarzy (17)

Kompan

w Programowanie

0piorunów

Symfony Messenger i klasy Transportów

https://gildia-developerow.pl/symfony-messenger-i-klasy-transportow/ 😎

Symfony Messenger jest świetny. Zgodzicie się? Instalujecie jedną paczkę i możecie wysłać wiadomość na kolejkę… oh wait. No jednak nie. Chociaż nie jest to tak trywialne jak w Doctrine, to jest to dosyć proste, o czym będzie dzisiejszy post. :innocent:

Tagi: ,  i  w , i 

Gwiazdor

w Programowanie

10piorunów

Siema. Kto tam chce to zapraszam na krótkiego strima o 21:10:

Posprzedaje patenty jak ogarnąć logowanie we własnych apkach

1. Pokażę gotowy flow uwierzytelniania przez zewnętrzny serwis z moim bekendem
2. Napiszemy frontową obsługę logowania

Tag do śledzenia

https://www.youtube.com/watch?v=83kc-BPMh-s