#naukaprogramowania

25
138
Ostatnio w pracy miałem problem z elsticsearchem. Nigdy nie dane mi go było poznać więc rozwiązując ten problem sporo nauczyłem się o tej technologii.

I tu pojawia się moje pytanie:

Znacie może takie bardziej zaawansowane i bazujące na prawdziwych problemach platformy do doskonalenia skilla programistycznego?

Jest sporo jakiś leetcodów itp. ale tam są bardziej takie algorytmiczne zadania pod rozmowę kwalifikacyjną.

Idealnie czego bym szukał to coś że dają ci rozgrzebany projekcik w którym jest jakiś błąd albo musisz coś dokończyć.

Wiem że sam mogę sobie jakieś projekty pisać, ale przy samodzielnym pisaniu zazwyczaj idzie względnie po mojej myśli i nie mam szans trafić jakiegoś błędu który przytrafi się przy projekcie większej skali.

#programowanie #programista15k #naukaprogramowania
saqala-bilaabayso

możesz pomagać innym ludziom, którzy mają takie problemy, na platformach typu stackoverflow

cec

Znajdź jakiś projekt open source np. na githubie, najlepiej taki, z którego korzystasz na co dzień.

Wejdź na kartę "issues", wybierz jakiś błąd i spróbuj go rozwiązać.


(Pewnie i tak się skończy na tym, że po dwóch dniach prób zbudowania tego gówna lokalnie rzucisz tym w kąt ¯\_(ツ)_/¯ )

Catharsis

@QuentinDamianino Tak jak ktoś już tu napisał, jak ci się nudzi i chcesz się pouczyć naprawiać błędy w czyimś kodzie to zapraszam na GitHubie jest masa open source aplikacji z setkami otwartych "iszu" czekających na naprawienie.

Zaloguj się aby komentować

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.

#programowanie #naukaprogramowania #pytanie #kiciochpyta
wombatDaiquiri

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

Tomek07

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

elszczepano

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.

elszczepano

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ć).

Meverth

@wombatDaiquiri sprawdź https://kobietydokodu.pl/kurs-javy/

możesz poczytać go nawet jeśli jesteś mężczyzną, trans, nie-binarny, kotem, psem itp - nikt tego nie sprawdza ( ͡~ ͜ʖ ͡°)

Zaloguj się aby komentować

Zostań Patronem Hejto i odblokuj dodatkowe korzyści tylko dla Patronów

  • Włączona możliwość zarabiania na swoich treściach
  • Całkowity brak reklam na każdym urządzeniu
  • Oznaczenie w postaci rogala , który świadczy o Twoim wsparciu
  • Wcześniejszy dostęp, do wybranych funkcji na Hejto
Zostań Patronem
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?

#praca #programowanie #naukaprogramowania #dlaprogramistow
wombatDaiquiri

@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.

Paciu06

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 Zresztą 15k brutto u nas to pewnie z 5k netto na zachodzie jak dobrze poszukasz.

pokeminatour

Może i spędzisz masę czasu na przebranżowienie, za to później będziesz mógł zacząć pracę jako junior z mniejszymi zarobkami, o ile cię ktoś weźmie bez doświadczenia.


Według mnie bez sensu. Nie możesz pokombinować by przejsc w obecnej branży na b2b co powinno dać już satysfakcjonujące zarobki ? Albo i znaleźć ciut spokojniejsza gorzej płatna pracę w branży ?

Dartof

@pokeminatour na całość patrzę raczej długoterminowo. Za 5 lat mogę:

1 - być gościem który zarabia 15 k, cały czas jeździ albo kimś zarabiającym 10 k i pracującym w bardziej stabilnej pracy. Niestety praca moja skupia się głównie na prawie energetycznym i nie mam możliwości przeniesienia się do innego kraju bez startu prawie że od zera.

2 - gościem który pracuje jako DevOps z 3-4 letnim doświadczeniem, ma możliwości większej pracy zdalnej w tym pracy w Polsce dla firm zagranicznych co wiąże się ze znacznie wyższymi zarobkami

Zaloguj się aby komentować

może ktoś z #programowanie #devops 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.

#technologia #komputery #siecikomputerowe #programista15k #naukaprogramowania #lajko
127840f5-09e5-4847-998a-944ed0aa51b9
koszotorobur

@wombatDaiquiri - ja Kubernetesa mam po dziurki w pracy, żeby się z nim jeszcze w domu pierdzielić

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ę

wombatDaiquiri

@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.

koszotorobur

@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.

Zaloguj się aby komentować

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ć

#programowanie
#naukaprogramowania
wombatDaiquiri

@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 ( ͡° ͜ʖ ͡°)

Zaloguj się aby komentować

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?

#programowanie
#naukaprogramowania
Meverth

@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

qarmin

@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

Meverth

@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.

DexterFromLab

@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?

qarmin

@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.

DexterFromLab

@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.

szczekoscisk

A czy komunikacja jest szyfrowana (HTTPS, nie http)? Bez tego logowanie i autoryzacja nie ma sensu.

qarmin

@szczekoscisk Jeszcze nie, do testów nie jest to potrzebne, zwłaszcza że większość rzeczy robię lokalnie, ale z tego co widzę, to dodanie https, to będzie jedynie kilkanaście nowych linii - https://actix.rs/docs/server/#tls--https

Zaloguj się aby komentować

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.

Tagi: #programowanie, #naukaprogramowania i #programista15k w #php, #symfony i #technologia

Zaloguj się aby komentować