Dzień dobry Hejto 👋 To mój pierwszy post tutaj, chociaż konto mam już w sumie od 1.5 roku - jakoś nie było wcześniej okazji. Dziś mam, to się od razu witam 😇

Odkąd rząd wprowadził ceny maksymalne paliw, znalezienie informacji o aktualnych cenach to często scrollowanie przez pół artykułu o historii ropy naftowej i dinozaurach 😅

Zrobiłem więc małą stronę, która pokazuje same dane — bez paywalli, SEO-esejów i autopromocji.

👉 https://ppnowak.github.io/ceny-paliw/

Kod wrzuciłem też na gita:
👉 https://github.com/ppnowak/ceny-paliw

To raczej szybki proof-of-concept (powstał w ~15 min z pomocą Copilota), ale spełnia swój cel.

Czy coś takiego ma sens?
Czegoś Wam brakuje? Co byście dodali?

#chwalesie #programowanie

Komentarze (30)

@roadie dokładnie ¯\_(ツ)_/¯ jestem pełny podziwu (tak naprawde to nie jestem pełny podziwu), dla ludzi, którzy ufają ejajowi bezgranicznie, we wszystko, co ten wyrzyga z siebie. A widuje takie rzeczy na codzień u ludzi.

@roadie chatgpt to farmazoniarz, nadaje sie do pisania listow milosnych xD jak chcesz konkretna wiedze to gemini albo copilot

Zawsze w sumie można wejść po prostu na stronę z której twoja apka bierze dane i tam przeczytać xd. https://www.gov.pl/web/energia/wiadomosci

Znaczy no spoko, apka działa. Ale napisane to jest śmiesznie fes. Ile ci ten copilot napisał testów do czegoś takiego. No i używanie AI do scrapowania tego to jest totalny overkill. Bo z tego co widzę to oni te ceny publikują w takim samym formacie codziennie w formie listy numerowanej i spokojnie można to było ręcznie znaleźć w treści strony. Regexem albo trzepiąc DOM.

@Catharsis napisanie scrappera ręcznie zajęło by mi więcej czasu niż czas poświęcony na napisanie 3-4 promptów do copilota. URL który dałeś powyżej daje dane z opóżnieniem, dlatego przełączyłem scrappera pod monitorpolski.gov.pl - tam dane są wklejone najszybciej. AI podpiąłem, bo NVidia daje bezpłatny dostęp z limitem którego nie osiągnę i takie rozwiązanie jest bardziej stabilne - regexpa trzeba poprawiać, bo urzędnik zrobi gdzieś literówkę albo inaczej coś wklei i już danych nie zbierze. AI powinien sobie poradzić.

Co do testów - mam gotowe instrukcje zaszyte w VSCode, z którymi tworzę nieco bardziej ambitne projekty. Tutaj po prostu wykorzystałem ten sam szablon instrukcji i dostałem testy w gratisie.

@czarnowidz Ten URL wziąłem z twojego readme xd.

Nie chodziło mi żeby od razu pisać cały scrapper ręcznie ale mogłeś poprosić AI o takiego. Well urzędnik może zrobić literówkę ale AI też nie jest 100% pewne, że nie będzie halucynować ceny.

@Catharsis masz rację z URLem - już nie spojrzałem na readme później. Jeśli będzie update aplikacji, to podmienię informację. Aktualności działają dalej jako fallback.

Sporo czasu w życiu zmarnowałem na scrappery i uważam, że opieranie się na DOM czy regexp jest mega niestabilne. Zawsze staram się podpiąć pod jakieś API. W tym przypadku chciałem też z ciekawości zobaczyć jak takie rozwiązanie pójdzie z podpiętym AI. Zgadzam się z tym, że mogłem inaczej. Rozwiązań tego nieistniejącego problemu było wiele 🙃

@chess_peppe poczytałem, ale niekoniecznie się z tym zgadzam w kontekście mojego wpisu (co nie oznacza, że w ogóle się nie zgadzam z treścią tego wpisu). To, co zaproponowałem powstało w kilka minut i rozwiązuje chwilowy problem - ceny regulowane nie będą wiecznie. Ja jako autor nie zyskuję na tym nic - nie założyłem jakiegoś buycoffee, nie wrzuciłem żadnych trackerów i innych ustrojstw.

Mam na kompie sporo chwilowych zajawek, które wyprodukowałem z Copilotem gdzieś po drodze, jako część poszerzania horyzontów, natomiast nigdy nie przyszło mi do głowy wrzucać tą całą kaszankę z kodu gdzieś publicznie.

Z drugiej strony zdecydowałem się wrzucić tą JavaScriptową abominację i nią pochwalić. Dlaczego? Bo pomyślałem, że na Hejto będą osoby którym to się faktycznie może przydać. Dla mnie zostaje jedynie chwilowy swag i satysfakcja, że coś się faktycznie komuś przyda 🤩

@czarnowidz cały proces i narzędzia do momentu aż to działa

Plus też trochę ew. jak możesz się podzielić i masz doświadczenie z ze stackiem darmowym (lub niskokosztowym) do webappek. W skrócie chętnie czytam jak ludzie robią Front End i Back End na jakichś alternatywnych narzędziach. W skrócie wiadomo są platformy low code i no code ale Microsoft i inni wielcy mają dość drogie (i złożone) licencjonowanie.

@ttoommakkoo naskrobię coś wieczorem i odpiszę tutaj. Proces to nie był jakiś rocket science, szczególnie że nie zabrało mi to zbyt wiele czasu

Tak tutaj wiem że bez BE ale już patrząc pod kątem bardziej rozbudowanych się zastanawiałem jakie to ma możliwości, ograniczenia itd. Z Antigravity dzięki @Catharsis - popatrzę sobie. Choć wydaje mi się, że podobnie jak Mocrosoft, który staje się coraz kosztowniejszy, tutaj też szybko może okazać się że warto szukać alternatyw - mowa o małych projektach (oprócz edukacyjnych myślę też o komercyjnych ew.)

@ttoommakkoo całe wykonanie zaczęło się od prostego prompta w którym zdefiniowałem co ma być na stronie i w scrapperze: ceny paliw, wykres, pobieranie danych ze strony, analiza AI po API z NVidia, github actions do uruchamiania scrappera. Coś w ten deseń: „/magic Implement simple website to serve max fuel price caps in Poland declared by the minister. The new price caps are announced on the official website: <url>. Analyze the contents… blablabla :)” Jak dostałem pierwszą wersję (już funkcjonalną to potrzebowałem jakieś niewielkie poprawki, zamarzył mi się dark mode, później jeszcze kazałem zmienić źródło danych.   Mój setup to VSCode z zalogowanym Copilotem + domyślna templatka gotowych promptów dla Copilota, które plugin zaciąga mi ze wspólnego folderu na dysku w momencie jak zaczynam pracować nad nowym projektem. Cała moc tego setupu leży w tych promptach - mam gotowe instrukcje, w których mam już predefiniowany cały cykl tworzenia. W zależności od prompta to będą poszczególni wykonawcy, standardy kodowania, czy układ repozytorium (np. monorepo). Do tego jeszcze dochodzą skille, ale z nimi dopiero się zaprzyjaźniam. Gotowe prompty trzymam w .github/prompts/XYZ.prompt.md - i potem mam je dostępne jako „slash command”, np. ten „/magic” z przykładowego prompta.

@czarnowidz wielkie dzięki za podzielenie się - tym bardziej że zajęło to pewnie niewiele krócej niż samo rozwiązanie 😉 Fajniy pomysł z tym setupem w githubie i skillami które też rozgryzam od niedawna. CI/CD jak rozumiem w takim prostym projekcie nie zachodzi ale ciekawe jak przy bardziej złożonych działasz jak jest wymóg deploymentu (Test&Prod) i różne standardy kodowania.

Ja pozazawodowe wychodzenie z strefy komfortu (pełnopłatne narzędzia sprawdzone i pomoc dedykowanych ludzi) zacząłem od fullstackowego podejscia i darmowych rozwiązań (git, netlify i bazka) i ciągle zdziwiony, że to jest dość mocarne a czasem nieintuicyjne - kredyty zjada deployment (dlatego testy na lokalnej instancji) i jakieś AI prompty a sam hosting i codzienne funkcjonowanie minimalnie🙃

@ttoommakkoo już nie dałem rady wczoraj napisać o serwerach. Ja jestem bardzo konserwatywny, ale pewnie wynika to z przyzwyczajenia. Jakoś nigdy nie zaufałem rozwiązaniom typu pay-as-you-go, dlatego dla bazy danych wolę sobie postawić lokalną instancję mariadb zamiast gdzieś to pchać. Pewnie gdyby któryś z moich projektów się rozwinął bardziej, to być może bym musiał zacząć myśleć o skalowaniu tego lub skorzystaniu z tych rozwiązań saas/iaas'owych.


Jeśli chodzi o tą aplikację, to w zasadzie pierwszy raz skorzystałem z GitHub Pages, bo wcześniej nie miałem takiej potrzeby. To rozwiązanie jest darmowe, no ale ma ograniczenia - tylko statyczny frontend, bez backendu; dodatkowo projekt musi być publiczny (dla publicznych projektów GitHub Actions nie ma limitów). Z backendem można trochę "pokombinować" - jeśli korzystasz ze statycznych danych, ale trzeba je odświeżać, to można właśnie zastosować takie rozwiązanie jak w "moim" kodzie - przez GitHub actions generować statyczne pliki z danymi i z poziomu CI/CD je bezpośrednio wpychać na repo + updatować Pages.


Większość projektów które robię trafiają na moje serwery dedykowane czy VPSy. Jeśli to projekt tylko dla mnie, to zazwyczaj idą na starego kompa, który robi w moim domu za serwer - AMD 5800K + 16GB ram wystarcza na kilkanaście frontendów z różnymi toolami i jeszcze są spore zapasy. Jeśli potrzebuję dostęp z sieci - odpalam sobie reverse ssh (ssh -N -R ...) do słabszego VPSa, który robi mi za bramę na internet. Nginx + reverse ssh robią robotę. Jeśli mam jakieś rozwiązanie z którego będzie korzystać więcej osób, to trafia na dedyka - nie mam jakichś mocarnych maszyn, bo nie mam dużego ruchu, mam za to w pełni zarządzalne serwery za stałą opłatę na których mogę zainstalować wszystko, a limitem jest tylko dysk, ram i CPU.


Na takie dupa-projekty: jeśli potrzebny jest backend, ale maszyna ma być tania to polecam mikrusa albo froga - serwery VPS. Frog jest darmowy: https://frog.mikr.us/ , a Mikr.us jest mega tani: https://mikr.us/ . Na mikrusie za 80zł kupiłem najtańszy serwer na 3 lata - działają mi na nim 4 małe aplikacje frontend + backend (websocket, rest api), które wykorzystuję na szkoleniach. Poniżej statystyki - przy szkoleniu na 12 osób CPU wzrosło mi może do 40%, ram praktycznie stał w miejscu (oczywiście wszystko zależy od tego co się hostuje). Kiedyś jeszcze bawiłem sie we free-tier na Oracle, da się tam wyrwać dosyć mocne VPSy za darmo. Miałem tylko taki problem, że mi taką maszynę z dnia na dzień skasowali bez uprzedzenia. Dlatego wolę zapłacić grosze za pewniaka. Jeśli coś mocniejszego niż mikrus, to jeszcze mogę polecić ewentualnie kimsufi (marka OVH) - korzystam od lat z bardzo budżetowego KS-1 na Intel Atom i działa ładnie. Tutaj można sobie ustawiać alerty, bo te tanie serwery zazwyczaj są wykupione w ciągu kilku minut: https://checkservers.ovh/

da771621-ff45-4a78-8d13-bfcf977b7ccd

@czarnowidz No i tego klocka o serwerach mi brakowało - dzięki za uzupełnienie luki!(w mojej głowie )

Trochę dla zabawy planuję namieszać wątków czyli w zależności czy całkiem zabawa/nauka czy jakiś mini projekt czy jakiś z potencjałem na skalowanie to wyobrażam sobie, że każde z poniższych będzie miało przewagi(tanie, proste) i ryzyka (nieskalowalne, limity, sekrety i RLS):
-Front + BaaS (backend‑as‑a‑service) - tutaj serverless

-hosting statyczny (GitHub Pages) + osobny zewnętrzny backend
-Antigravity

Kluczowe w narzędziach vibe coding to prywatność plus jeszcze czytam, że np. przy Google to planowane są zaostrzenia tygodniowych limitów Antigravity i że np. Firebase wymaga planu Blaze (żeby utrzymać dostęp do Cloud Storage) - nawet jeśli później wykorzystywanie tylko „no‑cost usage”.

@ttoommakkoo dla mnie Antigravity to crap - kończy się limit szybciej niż w Claude Code, do tego dostałem w którymś momencie shadow bana mimo, że korzystałem tylko z ich aplikacji. Finalnie poszedłem w Copilota, bo najbardziej mi przypasował w skali cena/jakość. Copilot ma miesięcznego triala, także też można się pobawić i sprawdzić rozwiązanie.

Zaloguj się aby komentować