#naukaprogramowania

25
167

Już za chwilę o 20:00 zaczynamy [stream ](https://www.youtube.com/watch?v=3mCb2a6NFQ0)zz) livecodingiem wykopowego bota opartego o chata gpt. Zapraszam każdego, kto interesuje się programowaniem, chciałby się czegoś dowiedzieć i w sumie to nie ma nic lepszego do roboty niż siedzenie w piwnicy dziś wieczorem ( ͡° ͜ʖ ͡°) W przyszłości zrobimy coś podobnego dla hejto.


Tag do followania / czarnolistowania: #programujzpasterzem


#chatgpt #openai #programista15k #it #naukaprogramowania #nodejs #javascript #glupiewykopowezabawy #youtube #filmnawieczor 


https://www.youtube.com/watch?v=3mCb2a6NFQ0

Zaloguj się aby komentować

WykopApi (w przyszłości też hejto) + ChatGPT


Zapraszam w czwartek o 20:00 na pierwszy odcinek z serii edukacyjnych live codingów, podczas których napiszemy użytecznego chat bota na konkurencyjny wykop w oparciu o GPT-4 i pogadamy o sytuacji w AjTi. Zachęcam do supukcji oraz obejrzeniu prologa do tego co robimy.


Tag do czarnolistowania / followania #programujzpasterzem


https://www.youtube.com/watch?v=3mCb2a6NFQ0


#programujzwykopem #naukaprogramowania #chatgpt #openai #programista15k #programowanie #nodejs #webdev #frontend #javascript #backend

@Sheppard30 - przydatne do tego jak nauczyć się bycia obsługiwaczem AI - bo w niedalekiej przyszłości tylko takie prace w IT się ostaną

@Sheppard30 promoty promptami, ale dlaczego to 💩 ma tak dużo "halucynacji", czy jak to po polsku będzie. Ostatnio przez miesiąc gpt 4 takie cyrki odwalał, że czułem się jakbym rozmawiał z wykopkiem. Żadne prompty nie pomagały, ignorował wszystkie instrukcje. Dopiero ostatnio się troche naprawił

Zaloguj się aby komentować

Witam wszystkich w ten śnieżny wtoreczek!  Przychodzę do Was z nowym wpisem o Domain Driven Design 

Dziś będą riki-tiki - polityki! 


Wstrzykiwanie polityki do agregatu w Domain Driven Design

https://gildia-developerow.pl/wstrzykiwanie-polityki-do-agregatu-w-domain-driven-design/


Kiedyś, podczas sesji Event Stormingu, w której brałem udział kilka lat temu, co chwilę padało zdanie „A to wyłapie jakaś polityka”. Następnie naklejaliśmy fioletową karteczkę. Wtedy nie było dla mnie jasne, czym są polityki w kontekście Stormingu oraz DDD. Dzisiaj już to wiem i chcę tą wiedzą podzielić się z Wami


Tagi: #programowanie, #naukaprogramowania i #programista15k w #php, #ddd no i #architektura oprogramowania

Zaloguj się aby komentować

Dzień dobry, zachęcam do prasóweczki na weekendzik


Jak pozbyć się setterów z encji?

https://gildia-developerow.pl/jak-pozbyc-sie-setterow-z-encji/


Wszyscy dookoła mówią, że encje powinny zawierać wyłącznie logikę biznesową, a nie settery. Niby wszyscy to wiedzą, ale każdy i tak robi te settery. Ja wiem, dlaczego tak się dzieje i z chęcią Wam o tym opowiem


Tagi: #programowanie, #naukaprogramowania i #programista15k w #symfony, #doctrine i #ddd

Zaloguj się aby komentować

Wkurza Cię nowy front vikop i postanowiłeś przejść na hejto? Nic nie działa tam jak trzeba? To dobrze się składa bo w ramach nauki #frontend przygotowuję serię streamów w których spróbujemy napisać własnego klienta i pokazać, że, w co trudno uwierzyć, może być jeszcze gorzej ( ͡° ͜ʖ ͡°) Pokażę Wam jak używać wykopAPI v3 i AntDesign oraz pogadamy o życiu.


https://www.youtube.com/watch?v=stEWW7UVD4Y


Zapraszam na stream o 21:37


Tag do czarnolistowania #programujzpasterzem 


#frontend #webdev #naukaprogramowania #programowanie #react #javascript #programista15k #programista20k #wykopapi

Zaloguj się aby komentować

Dzieeeeń dobrego wtorku wszystkim! :)


Mamy nowy wpis na blogu!   Tym razem wyjaśniam, jaki koncept stoi za CSRF tokenem i tłumaczę, dlaczego jest on taki ważny 


Po co jest ten token CSRF?

https://gildia-developerow.pl/po-co-jest-ten-token-csrf/ 


Wchodząc w świat Symfony niektóre rzeczy robimy z automatu, bo tak jest w dokumentacji. Nie zawsze zdajemy sobie sprawę z tego, o co tak na prawdę chodzi z pewnymi detalami. Jednym z takich detali jest token CSRF, który na pierwszy rzut oka wydaje się uciążliwy. Ale jest ważny, o czym będę pisał dzisiaj.


Tagi: #programowanie, #naukaprogramowania i #programista15k w #php#symfony i trochę #security

Zaloguj się aby komentować

Zaloguj się aby komentować

najnowszy post o Chain of Responsibility od @elszczepano zainspirował mnie do napisania recenzji;


TL;DR: chain of responsibility masz jak wykonujesz po sobie rzeczy, np.


1. Zapisz do logów

2. Wyślij metryki

3. Zwróć HTML ze zdjęciem papieża


Bardzo chciałem, żeby moja krytyka była merytoryczna, więc wpisałem dokładnie ten prompt w Chat GPT z prośbą o napisanie przykładu w express.js (ryc. 1)


const express = require('express');

const app = express();


// Middleware 1: Zapisz do logów

app.use((req, res, next) => {

console.log(`Received a request at ${req.url}`);

next(); // Przejście do następnego middleware

});


// Middleware 2: Wyślij metryki

app.use((req, res, next) => {

// Kod wysyłający metryki (przykładowo)

console.log(`Sending metrics for ${req.url}`);

next(); // Przejście do następnego middleware

});


// Middleware 3: Zwróć HTML ze zdjęciem papieża

app.use((req, res) => {

res.send('<html><body><h1>Strona z zdjęciem papieża</h1><img src="url\_do\_zdjecia\_papieża.jpg" alt="Papież"></body></html>');

});


const PORT = 3000;

app.listen(PORT, () => {

console.log(`Server running on port ${PORT}`);

});


na koniec chatGPT wyjaśnia nam co zrobił:


W tym kodzie każda funkcja middleware wywołuje next() po wykonaniu swojego zadania, co pozwala na przekazanie kontroli do następnego middleware w łańcuchu. Ostatni middleware nie wywołuje next(), ponieważ kończy proces obsługi żądania, wysyłając odpowiedź HTML.


pytanie: jaki jest sens pisać ten artykuł, zamiast napisać samo tl;dr? Mam nadzieję, że autor nie odbierze mojej recenzji osobiście. Ja nie mam motywacji napisać czegoś "od zera" dlatego póki co komentuję odważniejszych. pozdrawiam


#programowanie #pytanie #naukaprogramowania #lajko <- mój tag o programowaniu

ccbe9ce7-6e29-4925-a214-11229e9286fc

Rozumiem Twój punkt widzenia. Pisząc artykuły na bloga nigdy nie zakładałem, że muszą być unikalne i oryginalne (ale mogą, co niekiedy mi się udaje). Zdaję sobie sprawę że sporo contentu z bloga opisane w wielu innych miejscach (w tym w książce, na której się wzorowałem w recenzowanym wpisie) oraz że mogę uzyskać podobny efekt korzystając z Chatu GPT. Patrząc na możliwości LLM-ów, to równie dobrze bloga mógłbym nie prowadzić wcale.


Pisząc ten konkretny artykuł spełniam swój cel opisania wszystkich znanych mi wzorców projektowych na łamach bloga. Co do samej formy, to czy dało się to napisać krócej to się nie wypowiem. Artykuły staram się pisać bez zbędnego wodolejstwa i w prosty sposób jednak z kompletnym wyczerpaniem tematu. To czy mi to wychodzi czy nie pozostawiam do oceny czytelnikom.


Kończąc ten przydługi wywód, dzięki za feedback

@elszczepano oki, trzymam kciuki, mam nadzieję że się nie obrazisz za formę osobnego wpisu zamiast komentarza, ale miałem nadzieję więcej osób sprowokować do rozmowy, pozdrawiam xd

Zaloguj się aby komentować

Mamy tu jakiegoś eksperta od assemblera Z80? Chodzi mi o wstawki assemblerowe w sdcc. Funkcja, która ma skoczyć bezwarunkowo pod adres:

void run(char* address){

__asm

pop HL

jp (HL)

__endasm;

}

Kompiluje się prawidłowo, ale nie działa. Ktoś może mi wytłumaczyć dlaczego? Ja to rozumiem w następujący sposób:

-argument przy wywołaniu funkcji jest wrzucany na stos

-instrukcja "pop HL" ściąga argument ze stosu do rejestru HL

-"jp (HL)" skacze bezwarunkowo pod adres przechowywany w rejestrze HL.

program zachowuje się tak, jakby nic się nie wykonało.

#programowanie #naukaprogramowania #retrocomputing

6502 userbar

@ataxbras @MostlyRenegade @inskpektor

Problem częściowo rozwiązany - zerknąłem w pośredni kod asemblera generowany przez sdcc. Parametr nie jest przekazywany przez stos, tylko przez rejestr hl, więc samo "jp (HL)" załatwia sprawę. Nadal działa to tylko w przypadku przekazania wskaźnika na funkcję, przy 0x0000 się wiesza. Edit: jednak działa, problem jest chyba przy powtórnej inicjalizacji UARTa bez soft resetu

@6502 Właściwie, jakby tak pomyśleć, to zdjęcie ze stosu jest rzeczywiście zbędne, skoro w jp wołasz HL bezpośrednio. Nie wiem jak miałoby to psuć kompilację, ale widocznie psuło.

Gratulacje, że Ci działa!

Zaloguj się aby komentować

Dzieeeeń dobry w nowym roku! 

Dziś chyba wszyscy wracamy do pracy, więc wracam z publikacją posta!  No dobra, opublikowałem w święta, ale chwalę się dziś 


Zatem miłej lektury! 


Dodatkowe porady na temat performance aplikacji internetowej

https://gildia-developerow.pl/dodatkowe-porady-na-temat-performance-aplikacji-internetowej/


Utrzymanie dobrego performance aplikacji jest prawdziwą sztuką. Jako developerzy najczęściej poświęcamy swoją uwagę na to, w jaki sposób piszemy kod. I to jest okej, chociaż na tym przyśpieszanie aplikacji się nie kończy. Stąd właśnie mam kilka porad związanych z dobrym performance, które niekoniecznie skupiają się na tym, jaki kod piszemy


Tagi: #programowanie, #naukaprogramowania i #programowanie w #php , trochę #symfony

@MarcinKuklinski wydaje mi się, że dużo osób (w tym ja) może grzmocic content w ciemno bez czytania. Ale akurat trafiłeś w mój temat.


Poza tym że artykuł jest w dużej mierze o PHP z którym nie mam styczności, nie wiem po co to ukrywać w tytule xD


Zatrudnienie DevOpsa to dodatkowy (niemały) koszt [...] Stąd właśnie przychodzi potrzeba obsługiwania serwerów przez nas, backendowców.


Na tym polega DevOps. To o czym mówisz to "zatrudnienie opsa". DevOps == backendowiec robiący dwa etaty (tzn. ogarniający sobie deployment od 0). Gratulacje nowego tytułu.


Przykładowo, jeżeli mamy produkt, który składa się w wariantów, to nie musimy pchać pełnych wariantów w pole variants. Wystarczy wysłać odniesienie do wariantów – identyfikator (listę identyfikatorów), bądź jak to robi API Platform – zwrócić IRI zasobów.


Albo można nie tworzyć nowego standardu i użyć graphql.

Zaloguj się aby komentować

Dzieeeeń dobry wszystkim! Dziś Wigilia Bożego Narodzenia, dlatego chciałbym życzyć wszystkim użytkownikom Hejto dużo zdrowia, radości i samych zielonych testów!


A gdybyście gdzieś tam sobie chcieli coś poczytać, to łapcie wpisa!


Symfony Messenger asynchronicznie

https://gildia-developerow.pl/symfony-messenger-asynchronicznie/


To, że Symfony Messenger jest niezastąpiony, wszyscy wiedzą. Za to, jak go skonfigurować – niekoniecznie. Z tego powodu właśnie powstał dzisiejszy post. Skonfigurujmy razem Messengera, aby przeprocesował komendę asynchronicznie!


Tagi: #programowanie, #naukaprogramowania, #programista15k w #php oraz #symfony

@MarcinKuklinski Jakie to jest straszne gówno.... Masz kolejkę i jak nie pobierze to message zamiast zrzucić na kolejkę na koniec jak AMQP mówi to nie. PHP musi być upośledzony i tworzy sobie kolejkę delay, bo tak. Potem miliony tych kolejek wiszą, ani tym zarządzać ani nic. Chcesz rabbita oskryptować to nie, bo puścisz i usunie te wszystkie delay kolejki i stracisz dane. No cudowna technologia prosto od PHP. Nie wiem czy w ciągu mojej całej, trwającej kilkanaście lat kariery zawodowej widziałem bardziej wkurzającą w założeniach bibliotekę.

Zaloguj się aby komentować

Dzieeeeń dobry! Zrobiłem sobie kilka dni przerwy od statków i naskrobałem nowy wpis Bo gdzieś tam przemyślenia mnie wzięły odnośnie tego, jak piszemy aplikacje, i dlaczego one niekoniecznie szybkie są No więc łapcie!


**Kilka porad na dobry performance aplikacji napisanej w Symfony**


https://gildia-developerow.pl/kilka-porad-na-dobry-performance-aplikacji-napisanej-w-symfony/


Jako programiści lubimy dyskutować nad tym, czy nasz kod wygląda dobrze. Zastanawiamy się, czy da radę go re-używać oraz zrozumieć. Niestety, nie podejmujemy zbyt wiele dyskusji na temat tego, czy aplikacje, które tworzymy mają odpowiedni performance. Zatem dziś jak podejrzewacie, będzie właśnie o performance.


Tagi: #programowanie, #naukaprogramowania oraz #programista15k w #php, #symfony oraz #doctrine. No i #performance

Zaloguj się aby komentować

Dzieeeeń dobry wszystkim! to znowu ja


Dziś zostawiam Was na weekendzik z wpisem o #ciekawostki dotyczące #php PSR 


PHP-FIG i standardy PSR

https://gildia-developerow.pl/php-fig-i-standardy-psr/ 


Jak wygląda kod-spaghetti, wiemy wszyscy. Jest on tworzony bardzo często przez programistów, którzy swoją naukę zakończyli wraz z nauką języka programowania. Próbują oni odkrywać koło na nowo, osiągając coraz to nowsze pokłady nieporządku i niezrozumienia. Dla wszystkich tych, którzy właśnie przeczytali coś o sobie, jest właśnie ten wpis.


Tagi: #programowanie, #naukaprogramowania i #programista15k w #symfony. Nawet o #laravel coś tam jest

@sierzant_armii_12_malp i tak i nie. Doświadczony programista moim zdaniem często stosuje zasadę dobrego harcerza i sprząta więcej, niż sam nabrudził. Nie tłumacząc się biznesowi. Bo koniec końców on pracuje przy tym kodzie. To trochę tak, jakby budowlaniec miał kłaść wylewkę bez wcześniejszego oczyszczenia podłoża. Bo biznes mu powiedział, że on chce wylewkę. Że nie chce sprzątania.


Ale to wszystko też zależy od tego, co stoi za słowem "doświadczony programista". Bo to może być ktoś, kto klepie dziesięć lat pietnastotysięczniki, a może to być osoba, która zna wzorce architektoniczne, zna ich wady i podejmuje decyzje roztropnie. Jeden doświadczony programista klepie kodziki tylko do nowych ficzerów, bo biznes tak kazał, a drugi doświadczony programista planuje mikro-refactoring z taska na task, aby długu ubywało.

@MarcinKuklinski Nie ma „i tak i nie” - albo tak, albo nie. Micro-refactoringiem wszystkiego nie poprawisz, a każdy nietrywialny refactoring to dodatkowe ryzyko regresji.

Biznesowi trzeba wytłumaczyć, że refactoring jest potrzebny, chociażby pokazując analogię do tego, co on robi - ale jeśli trafi się manager na tyle głupi, że tego nie pojmie, to „naś klijent naś pannnnn”. Dostaniesz raz czy drugi ochrzan za regresję, to zaczniesz inaczej pojmować świat.

Zaloguj się aby komentować

Dobra architektura z CQRS


https://gildia-developerow.pl/dobra-architektura-z-cqrs/


Chyba każdy, kto zaczynał pracować na dowolnym frameworku MVC, popełniał ten sam błąd: znaczną część logiki zamieszczał wewnątrz akcji kontrolera. Efektem tego były pliki kontrolerów o dużej ilości linijek. W dzisiejszym wpisie rozważymy wzorzec, dzięki któremu zadbamy nieco o nasz kod tak, aby duże kontrolery do nas więcej nie wróciły. Mowa oczywiście o wzorcu CQRS.


Tagi: #programowanie, #naukaprogramowania i #programista15k o #php, #symfony

Zaloguj się aby komentować

Wzorce projektowe przyjazne Open-Close Principle cz.2


https://gildia-developerow.pl/wzorce-projektowe-przyjazne-open-close-principle-cz-2/


Wzorców projektowych jest bardzo dużo, nawet jeżeli jakoś je pogrupujemy. A pogrupowałem już we wcześniejszym wpisie, którego temat będę kontynuował tutaj. Zapraszam więc na drugą część wpisu o wzorcach projektowych przyjaznych zasadzie OCP


Tagi: #programowanie, #naukaprogramowania oraz #programista15k i #php

Zaloguj się aby komentować

@UncleFester sam znalazłem, ale fakty są takie, że było znacznie ciężej w znalezieniu czegoś ciekawego. Szukałem od początku roku. Byle co to zawsze się dało, ale po co wówczas zmieniać pracę.

Zaloguj się aby komentować

https://gildia-developerow.pl/wzorce-projektowe-przyjazne-open-close-principle-cz-1/


Jednym z dziedzictw świata programowania są wzorce projektowe. Jest to meta-język, którym mogą posługiwać się programiści niezależnie od tego, w jakiej technologii, czy języku piszą. Bardzo podobnie jest z zasadami SOLID. Dziś połączymy te dwie rzeczy w pierwszym, z dwuczęściowej serii, wpisie.


Taaaaagi: #programowanie #naukaprogramowania #php #programista15k

"Dekorator", "Kompozyt" i "Adapter" nie ma za wiele wspólnego z zasadą "Open-closed principle". Dlaczego? Te wzorce można zastosować dla każdej klasy/funkcji i jest to niezależne od tego czy ktoś trzymał się zasad SOLID tworząc klasę.

Zaloguj się aby komentować