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.
@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.
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.
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 🙃
@czarnowidz Polecam mój wpis sprzed kilku dni https://www.hejto.pl/wpis/wielu-z-nas-jest-lub-bylo-w-trakcie-pisania-swojego-quot-side-project-quot-ktory
@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.
jak ludzie robią Front End i Back End na jakichś alternatywnych narzędziach
Tutaj nie ma backendu. I co to znaczy na alternatywnych narzędziach? Jak chcesz się pobawić w vibe codowanie za darmo (albo bardzo tanio) to największe darmowe limity ma chyba Google. Ich AI możesz się bawić najprościej w ich IDE Antigravity albo w GeminiCLI .
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/
@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
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.