[{"data":1,"prerenderedAt":1072},["ShallowReactive",2],{"post:\u002Fblog\u002F9-zasad-programowania-z-ai-3-zdefiniuj-gotowe":3,"surround:\u002Fblog\u002F9-zasad-programowania-z-ai-3-zdefiniuj-gotowe":171,"related:\u002Fblog\u002F9-zasad-programowania-z-ai-3-zdefiniuj-gotowe":176,"categories":204,"tags":275,"post-author:maciej-walczak":1058},{"id":4,"title":5,"author":6,"body":7,"categories":150,"comments":152,"cover":15,"coverAlt":13,"date":153,"description":154,"draft":155,"extension":156,"hidden":155,"meta":157,"navigation":152,"path":158,"readingTime":159,"redirectFrom":160,"seo":161,"sitemap":162,"slug":163,"stem":164,"tags":165,"updated":169,"wpId":169,"__hash__":170},"blog\u002Fblog\u002F2026-11-02-9-zasad-programowania-z-ai-3-zdefiniuj-gotowe.md","9 zasad programowania z AI - #3: Zdefiniuj „gotowe”","maciej-walczak",{"type":8,"value":9,"toc":141},"minimark",[10,17,30,40,45,51,54,58,65,68,74,77,81,84,88,91,94,98,132,135,138],[11,12],"figure",{"alt":13,"height":14,"src":15,"width":16},"Okładka z napisem „9 zasad programowania z AI” i pod nim „#3 Zdefiniuj ‚gotowe’” w prawym górnym rogu. Ilustracja w stylu płaskiej grafiki wektorowej. Na pomarańczowym torze biegowym po lewej stoi mały biały robot z jednym wizjerem, trzyma stoper i podkładkę z listą. Po prawej programista w okularach i czarnej bluzie kuca przy linii mety i rysuje kredą szachownicę, spoglądając w stronę robota. Obok mety stoi maszt z flagą w szachownicę, a na torze między nimi leżą trzy pola z haczykami.",1086,"https:\u002F\u002F5icqmonbzxnrw2bn.public.blob.vercel-storage.com\u002F2026\u002F11\u002F9-zasad-3-gotowe-okladka.png",1448,[18,19,20,21,29],"p",{},"W ",[22,23,25],"a",{"href":24},"\u002Fblog\u002F9-zasad-programowania-z-ai-2-ustalcie-o-co-chodzi",[26,27,28],"strong",{},"poprzedniej części"," ustalaliśmy, co właściwie budujemy. Teraz drugie pytanie, równie ważne: skąd będziemy wiedzieć, że to zostało zbudowane?",[18,31,32,33,39],{},"Agent kończy zadanie, testy świecą na zielono, wszystko wygląda dobrze. Tyle że zielone testy potwierdzają jedynie, że kod robi to, co robi. Pisałem już o takim scenariuszu ",[22,34,36],{"href":35},"\u002Fblog\u002Feldorado-sie-skonczylo-i-co-teraz",[26,37,38],{},"we wpisie o końcu Eldorado",": AI dopisuje testy, wszystko przechodzi, a po kilku dniach użytkownicy widzą dane innych kont. Problem nie leżał w tym, że testów brakowało, tylko w tym, że nikt wcześniej nie ustalił, co mają sprawdzać.",[41,42,44],"h2",{"id":43},"zasada-3-zapisz-co-znaczy-gotowe-zanim-powstanie-kod","Zasada #3: zapisz, co znaczy „gotowe”, zanim powstanie kod",[18,46,47,50],{},[26,48,49],{},"Jeśli „gotowe” definiuje ten sam agent, który właśnie napisał kod, jego testy potwierdzają jego decyzje, a nie łapią jego błędy."," Tak ujął to Alvoeiro z Factory w wystąpieniu o pracy wielu agentów naraz: testy napisane po kodzie „potwierdzają decyzje, nie łapią błędów”, więc system powoli dryfuje.",[18,52,53],{},"Dlatego u nich kryteria akceptacji powstają przed implementacją, w osobnym dokumencie, niezależnym od tego, jak kod zostanie napisany.",[41,55,57],{"id":56},"kontrakt-walidacji","Kontrakt walidacji",[18,59,60,61,64],{},"Jak to wygląda u Factory? Orchestrator (agent-planista) planuje funkcje i kamienie milowe, a razem z nimi tworzy ",[26,62,63],{},"kontrakt walidacji",". Każda funkcja ma przypisane asercje (konkretne sprawdzenia), a wszystkie razem pokrywają całość. Dopiero wtedy worker (agent-wykonawca) implementuje funkcję w czystym kontekście, a osobny walidator (agent-kontroler) sprawdza wynik względem kontraktu.",[18,66,67],{},"Po każdym kamieniu milowym działają dwa walidatory. Pierwszy to automatyczne testy i kontrole kodu oraz osobny agent, który przegląda każdą funkcję (code review). Drugi uruchamia aplikację i działa jak tester, np. przez obsługę komputera jak człowiek (computer use). Żaden z nich nie brał udziału w pisaniu kodu, więc ich ocena jest niezależna od workera.",[11,69],{"alt":70,"height":71,"src":72,"width":73},"Dwa tory pod sobą. Górny, szary, „Test po kodzie”: kod pisze agent, testy z kodu pisze ten sam agent, na końcu zielony wynik, który potwierdza decyzje agenta. Dolny, „Kontrakt przed kodem”: najpierw kontrakt z kryteriami i asercjami, potem kod w czystej sesji, potem walidator sprawdzający zgodność z kontraktem; strzałka zwrotna: braki wracają do poprawki kodu. Nagłówek: „Kto definiuje „gotowe”?”.",560,"https:\u002F\u002F5icqmonbzxnrw2bn.public.blob.vercel-storage.com\u002F2026\u002F11\u002F9-zasad-3-gotowe-schemat.svg",1200,[18,75,76],{},"Alvoeiro podaje liczby z przykładu, w którym agenci zbudowali klon Slacka: ok. 60% czasu i tokenów poszło na implementację, ok. 50% linii kodu to testy, pokrycie wyniosło ok. 90%, a walidacja nigdy nie przeszła za pierwszym razem – zawsze były poprawki. To jedna misja jednego zespołu, więc potraktujmy te liczby jako ilustrację, nie normę.",[41,78,80],{"id":79},"małe-kroki","Małe kroki",[18,82,83],{},"Drugi powód, żeby zacząć od testu: agent pisze za dużo naraz. Pocock mówi, że model „wyprzedza reflektory” – nim zobaczy, czy poprzedni krok działa, napisze kilka następnych. Prędkością w pracy z AI jest więc tempo informacji zwrotnej. TDD (tworzenie kodu od testu) wymusza taki rytm: najpierw test, potem kod, potem porządki w kodzie (refaktoryzacja), a dopiero następny krok.",[41,85,87],{"id":86},"kryteria-bywają-szersze-niż-testy","Kryteria bywają szersze niż testy",[18,89,90],{},"Lopopolo z OpenAI opisuje plan QA (testowania jakości): dokument, w którym zespół spisuje funkcje aplikacji, krytyczne ścieżki użytkownika i to, jakie materiały mają trafić do propozycji zmiany (PR), żeby uznać zmianę za udowodnioną. Dzięki temu agent-recenzent ma co weryfikować, a człowiek rzadziej musi zaglądać agentowi przez ramię.",[18,92,93],{},"Podobnie w kursie o pracy z agentami (DeepLearning.AI i JetBrains): specyfikacja funkcji z planem, wymaganiami i sposobem weryfikacji trafia do historii zmian (commit) jeszcze przed implementacją. A gdy w kodzie wyjdzie błąd, bywa on błędem w planie – wtedy poprawia się oba.",[41,95,97],{"id":96},"co-z-tym-zrobić-od-jutra","Co z tym zrobić od jutra?",[99,100,101,108,114,120,126],"ul",{},[102,103,104,107],"li",{},[26,105,106],{},"Do każdego zadania dopisz kryteria akceptacji",", zanim agent ruszy. Wystarczą 2–3 zdania opisujące efekt, a jeśli nie umiesz ich napisać, zadanie nie jest jeszcze gotowe do delegowania",[102,109,110,113],{},[26,111,112],{},"Poproś agenta o listę przypadków brzegowych"," (nietypowych sytuacji) do skomentowania, zanim napisze kod",[102,115,116,119],{},[26,117,118],{},"Testy lub scenariusze najpierw",", w osobnym zapisie zmian, a implementacja w kolejnej sesji",[102,121,122,125],{},[26,123,124],{},"Przy zmianach w interfejsie"," dopisz do kryteriów zrzut lub nagranie przed i po",[102,127,128,131],{},[26,129,130],{},"Małe kroki:"," jedna funkcja, jeden cykl, jeden commit",[18,133,134],{},"Jedna pułapka: testy pisane przez agenta „po fakcie” z gotowego kodu są zrzutem jego myślenia. Ten sam błąd siedzi i w kodzie, i w teście, więc zielony wynik dowodzi niewiele.",[18,136,137],{},"W następnej części zajmiemy się dowodami: skąd wiemy, że agent faktycznie uruchomił testy, a nie tylko napisał, że to zrobił.",[18,139,140],{},"A Wy – kto u Was pisze testy do kodu agenta: agent po fakcie, czy ktoś przed kodem? Dajcie znać w komentarzach 🙂",{"title":142,"searchDepth":143,"depth":143,"links":144},"",2,[145,146,147,148,149],{"id":43,"depth":143,"text":44},{"id":56,"depth":143,"text":57},{"id":79,"depth":143,"text":80},{"id":86,"depth":143,"text":87},{"id":96,"depth":143,"text":97},[151],"artykuly",true,"2026-11-02","Zasada #3: jeśli „gotowe” definiuje ten sam agent, który napisał kod, jego testy potwierdzają decyzje zamiast łapać błędy. Kryteria zapisz przed kodem.",false,"md",{},"\u002Fblog\u002F9-zasad-programowania-z-ai-3-zdefiniuj-gotowe",4,[],{"title":5,"description":154},{"loc":158},"9-zasad-programowania-z-ai-3-zdefiniuj-gotowe","blog\u002F2026-11-02-9-zasad-programowania-z-ai-3-zdefiniuj-gotowe",[166,167,168],"ai","claude-code","testowanie",null,"_vNvu5e6Mq5Im6MNru9wqgKGVyqzOuydaEns7E3U4dI",[172,169],{"title":173,"path":24,"stem":174,"description":175,"children":-1},"9 zasad programowania z AI - #2: Ustalcie, o co chodzi","blog\u002F2026-10-31-9-zasad-programowania-z-ai-2-ustalcie-o-co-chodzi","Zasada #2: najdroższy błąd w pracy z agentem to nietrafione zrozumienie zadania, więc ustalcie, co budujemy, zanim padnie pierwsza linijka kodu.",[177,184,194],{"path":24,"title":173,"description":175,"date":178,"categories":179,"tags":180,"readingTime":182,"draft":155,"cover":183},"2026-10-31",[151],[166,167,181],"spec-driven-development",5,"https:\u002F\u002F5icqmonbzxnrw2bn.public.blob.vercel-storage.com\u002F2026\u002F10\u002F9-zasad-2-ustalcie-okladka.png",{"path":185,"title":186,"description":187,"date":188,"categories":189,"tags":190,"readingTime":192,"draft":155,"cover":193},"\u002Fblog\u002F9-zasad-programowania-z-ai-1-zarzadzaj-kontekstem","9 zasad programowania z AI - #1: Zarządzaj kontekstem","Zaczynam serię o pracy z agentami kodującymi. Zasada #1: o tym, co zrobi agent, decyduje to, co ma w kontekście, a nie długość promptu.","2026-10-29",[151],[166,167,191],"programowanie",6,"https:\u002F\u002F5icqmonbzxnrw2bn.public.blob.vercel-storage.com\u002F2026\u002F10\u002F9-zasad-1-kontekst-okladka.png",{"path":195,"title":196,"description":197,"date":198,"categories":199,"tags":200,"readingTime":202,"draft":155,"cover":203},"\u002Fblog\u002Fszybciej-wolniej-a-moze-po-prostu-inaczej-co-mierza-badania-o-ai","Szybciej, wolniej, a może po prostu inaczej – czyli co naprawdę mierzą badania o AI","Jedni mówią, że AI przyspiesza pracę o połowę, inni, że spowalnia. Sprawdziłem badania i 4 filmy – i okazało się, że często mierzą zupełnie co innego…","2026-10-27",[151],[166,191,167,201,181],"kariera-w-it",11,"https:\u002F\u002F5icqmonbzxnrw2bn.public.blob.vercel-storage.com\u002F2026\u002F10\u002Fszybciej-wolniej-okladka.png",[205,212,219,226,233,240,247,254,261,268],{"id":206,"description":169,"extension":207,"meta":208,"name":209,"slug":151,"stem":210,"__hash__":211},"categories\u002Fcategories\u002Fartykuly.yml","yml",{},"Artykuły","categories\u002Fartykuly","aw37OCuccDz54Q07CDyESiid8VqHzN1nGf8cMOk_mI0",{"id":213,"description":169,"extension":207,"meta":214,"name":215,"slug":216,"stem":217,"__hash__":218},"categories\u002Fcategories\u002Fdostepnosc-cyfrowa.yml",{},"Dostępność cyfrowa","dostepnosc-cyfrowa","categories\u002Fdostepnosc-cyfrowa","6m7Ag8ZZ1EzfdgLuQnAUAMmRcjkgb2tpFM9n1qxANOM",{"id":220,"description":169,"extension":207,"meta":221,"name":222,"slug":223,"stem":224,"__hash__":225},"categories\u002Fcategories\u002Fkonferencje.yml",{},"Konferencje","konferencje","categories\u002Fkonferencje","dQl4MW7163iEG-b7Cv6FJ2gUxLqnpaiMOLixCXvhHTw",{"id":227,"description":169,"extension":207,"meta":228,"name":229,"slug":230,"stem":231,"__hash__":232},"categories\u002Fcategories\u002Fkonfiguracja.yml",{},"Konfiguracja","konfiguracja","categories\u002Fkonfiguracja","ESTOPlJnBPnwuuqgOm7yqGAwgllsRJfSPVk22K_nQe0",{"id":234,"description":169,"extension":207,"meta":235,"name":236,"slug":237,"stem":238,"__hash__":239},"categories\u002Fcategories\u002Fnauka.yml",{},"Nauka","nauka","categories\u002Fnauka","3hQRPpuXqoNblW09Gj46arWFgH-3YfsMcgDyd4xLkN4",{"id":241,"description":169,"extension":207,"meta":242,"name":243,"slug":244,"stem":245,"__hash__":246},"categories\u002Fcategories\u002Fosx.yml",{},"OSX","osx","categories\u002Fosx","WW8-0hUIqcivgAUl8WQuAvJ3-xVLRLjLkmP00PP4eXY",{"id":248,"description":169,"extension":207,"meta":249,"name":250,"slug":251,"stem":252,"__hash__":253},"categories\u002Fcategories\u002Fpolecane.yml",{},"Polecane","polecane","categories\u002Fpolecane","ckLXqMEBUHLxZavR7FGvpQjhxc7ycP_sQ7myEw64R9I",{"id":255,"description":169,"extension":207,"meta":256,"name":257,"slug":258,"stem":259,"__hash__":260},"categories\u002Fcategories\u002Fpomoce.yml",{},"Pomoce","pomoce","categories\u002Fpomoce","3oKSrG-VgrihP1nofQwuUItxUsyzVfgEfTMF2vq7EIw",{"id":262,"description":169,"extension":207,"meta":263,"name":264,"slug":265,"stem":266,"__hash__":267},"categories\u002Fcategories\u002Fprezentacje.yml",{},"Prezentacje","prezentacje","categories\u002Fprezentacje","4L5LUH8zxl0qXRvdymYTwtrkuj1tQun8R7yYz_OfndE",{"id":269,"description":169,"extension":207,"meta":270,"name":271,"slug":272,"stem":273,"__hash__":274},"categories\u002Fcategories\u002Fvue-js.yml",{},"Vue.js","vue-js","categories\u002Fvue-js","wOIuiF3jWQ-Zph8v7hYGNuLdJbCx0VguVg0loyh-Mwk",[276,282,287,293,300,307,314,321,327,334,341,348,354,361,368,375,382,389,396,402,409,416,422,428,434,440,446,452,458,464,470,476,483,489,495,501,507,513,519,526,532,538,545,552,558,564,571,577,582,587,593,600,607,613,619,626,633,638,645,652,659,665,672,677,684,691,697,704,710,716,723,729,736,742,748,753,759,766,772,779,785,791,798,805,812,818,825,831,837,843,850,857,864,870,876,882,889,896,903,909,916,922,929,936,942,947,953,960,966,972,979,986,993,1000,1006,1012,1018,1024,1030,1037,1044,1051],{"id":277,"extension":207,"meta":278,"name":279,"slug":279,"stem":280,"__hash__":281},"tags\u002Ftags\u002Faccessibility.yml",{},"accessibility","tags\u002Faccessibility","luflFOwd8bzxVK2qeBv80Pzxhje6x-hbJYaDUihuwOk",{"id":283,"extension":207,"meta":284,"name":166,"slug":166,"stem":285,"__hash__":286},"tags\u002Ftags\u002Fai.yml",{},"tags\u002Fai","dps1QD2_kN7ri7PVTP0uaeL-lYhL69nCwndkqEqLLhU",{"id":288,"extension":207,"meta":289,"name":290,"slug":290,"stem":291,"__hash__":292},"tags\u002Ftags\u002Fanalityka.yml",{},"analityka","tags\u002Fanalityka","OazPvU9cHqo-nX1NPUamjhpZH7roEImTsqB55m-1Ewg",{"id":294,"extension":207,"meta":295,"name":296,"slug":297,"stem":298,"__hash__":299},"tags\u002Ftags\u002Fangular.yml",{},"Angular","angular","tags\u002Fangular","z6SH0xA8FvB2X9kVmW-gtOdfx__mVrgIuA7HVCzfLjo",{"id":301,"extension":207,"meta":302,"name":303,"slug":304,"stem":305,"__hash__":306},"tags\u002Ftags\u002Fapache2.yml",{},"Apache2","apache2","tags\u002Fapache2","unCvGoDYof2-UiVE0lnN8eq5ru5roRg5_2mAo4TdEHk",{"id":308,"extension":207,"meta":309,"name":310,"slug":311,"stem":312,"__hash__":313},"tags\u002Ftags\u002Faplikacje-i-uslugi-internetowe.yml",{},"aplikacje i usługi internetowe","aplikacje-i-uslugi-internetowe","tags\u002Faplikacje-i-uslugi-internetowe","G2Vojqp3Zd7QgL3zFleglcNCFkjzkAAeDQCScU6P8bc",{"id":315,"extension":207,"meta":316,"name":317,"slug":318,"stem":319,"__hash__":320},"tags\u002Ftags\u002Fasynchronicznosc.yml",{},"asynchroniczność","asynchronicznosc","tags\u002Fasynchronicznosc","9RMRbHed9wQxDzVpEjO6Ay9zxWDCI0e4hE8F4zqGgj0",{"id":322,"extension":207,"meta":323,"name":324,"slug":324,"stem":325,"__hash__":326},"tags\u002Ftags\u002Fautomatyzacja.yml",{},"automatyzacja","tags\u002Fautomatyzacja","vfUpLN8opVGvKUQgjGwEYxKfsZsLo3jxneMF9YMMVD0",{"id":328,"extension":207,"meta":329,"name":330,"slug":331,"stem":332,"__hash__":333},"tags\u002Ftags\u002Fblokowanie-reklam.yml",{},"blokowanie reklam","blokowanie-reklam","tags\u002Fblokowanie-reklam","lq-tfiZ_uB_SerIlaIQFMOXvGIF3QoVVVyPxjwrEsR4",{"id":335,"extension":207,"meta":336,"name":337,"slug":338,"stem":339,"__hash__":340},"tags\u002Ftags\u002Fblue-media.yml",{},"Blue Media","blue-media","tags\u002Fblue-media","z8G577CxZ7uSy-oNOkWtn3XgbsbjeKhuNby5Q6BCRuM",{"id":342,"extension":207,"meta":343,"name":344,"slug":345,"stem":346,"__hash__":347},"tags\u002Ftags\u002Fchrome-extensions.yml",{},"chrome extensions","chrome-extensions","tags\u002Fchrome-extensions","Ip0fOTD9TMJiHcbXwgvAB2mFf_D1rlP5ZfkJG3GbCL0",{"id":349,"extension":207,"meta":350,"name":351,"slug":167,"stem":352,"__hash__":353},"tags\u002Ftags\u002Fclaude-code.yml",{},"claude code","tags\u002Fclaude-code","wJZCEyRD6Cq9w7YKW0WDw94B_K-Y-nbkt1sLGN2RgEw",{"id":355,"extension":207,"meta":356,"name":357,"slug":358,"stem":359,"__hash__":360},"tags\u002Ftags\u002Fcmr.yml",{},"CMR","cmr","tags\u002Fcmr","eNv_ncSDXVsAFBCM8A4uJqAJItqSOP29I1Kabpm-l3Y",{"id":362,"extension":207,"meta":363,"name":364,"slug":365,"stem":366,"__hash__":367},"tags\u002Ftags\u002Fcodersday.yml",{},"CodersDay","codersday","tags\u002Fcodersday","jLWUVGvGvi2irKFpFs0Ea6hkW71mLoiroOaGDcv1KWw",{"id":369,"extension":207,"meta":370,"name":371,"slug":372,"stem":373,"__hash__":374},"tags\u002Ftags\u002Fcoderslab.yml",{},"CodersLab","coderslab","tags\u002Fcoderslab","NQEy1mD_tk9h71yZtjSoC4LhXGE54DGYaYgj3JOoUqY",{"id":376,"extension":207,"meta":377,"name":378,"slug":379,"stem":380,"__hash__":381},"tags\u002Ftags\u002Fcolor-contrast-analyzer.yml",{},"Color Contrast Analyzer","color-contrast-analyzer","tags\u002Fcolor-contrast-analyzer","hGu3gO_owf9Tn4p5-FssJGVt4ToSsRfgjMjWdX2YgEI",{"id":383,"extension":207,"meta":384,"name":385,"slug":386,"stem":387,"__hash__":388},"tags\u002Ftags\u002Fcolor-contrast-checker.yml",{},"Color Contrast Checker","color-contrast-checker","tags\u002Fcolor-contrast-checker","w8QKUWUH691wTFtUWDJMjbCvC6zlFZo6j4UDDSg1NDY",{"id":390,"extension":207,"meta":391,"name":392,"slug":393,"stem":394,"__hash__":395},"tags\u002Ftags\u002Fconfrontjs.yml",{},"ConFrontJS","confrontjs","tags\u002Fconfrontjs","G4ePmrCbuLVA_ccxs7rcKSveQ3Kvn7y6-Ie9-H_5gpc",{"id":397,"extension":207,"meta":398,"name":399,"slug":399,"stem":400,"__hash__":401},"tags\u002Ftags\u002Fcss3.yml",{},"css3","tags\u002Fcss3","f5Gtp9yzvmyMSZ-IN--19c7OR-v5LXzdvhNaEmiOsuw",{"id":403,"extension":207,"meta":404,"name":405,"slug":406,"stem":407,"__hash__":408},"tags\u002Ftags\u002Fdesi-2020.yml",{},"DESI 2020","desi-2020","tags\u002Fdesi-2020","KeSFSj6VcXN0OciAUSTR8C1kiGUE3nLzGR1Pi5h_USE",{"id":410,"extension":207,"meta":411,"name":412,"slug":413,"stem":414,"__hash__":415},"tags\u002Ftags\u002Fdns.yml",{},"DNS","dns","tags\u002Fdns","_TzsfpRL_ROm8MT5opDE1gg4GnuukbCyKY87W-IFl68",{"id":417,"extension":207,"meta":418,"name":419,"slug":216,"stem":420,"__hash__":421},"tags\u002Ftags\u002Fdostepnosc-cyfrowa.yml",{},"dostępność cyfrowa","tags\u002Fdostepnosc-cyfrowa","8xZ6WRsys1qnr-vWH_Y4Ne8ac2RBONWyLrrm31u00xI",{"id":423,"extension":207,"meta":424,"name":425,"slug":425,"stem":426,"__hash__":427},"tags\u002Ftags\u002Febook.yml",{},"ebook","tags\u002Febook","2Eqjl28-mK0fxpryAfGFMCel8MSByJVuQRsvy_S_cgY",{"id":429,"extension":207,"meta":430,"name":431,"slug":431,"stem":432,"__hash__":433},"tags\u002Ftags\u002Felgato.yml",{},"elgato","tags\u002Felgato","ys3dC5VhSFe1JP_z6vIBB8W8WSJmrbB2C3gwTjSkINM",{"id":435,"extension":207,"meta":436,"name":437,"slug":437,"stem":438,"__hash__":439},"tags\u002Ftags\u002Fevent.yml",{},"event","tags\u002Fevent","xcUCN7zoFrW8LCakRgx4s2r8YTGvycTdYQEyx_Yg7Fk",{"id":441,"extension":207,"meta":442,"name":443,"slug":443,"stem":444,"__hash__":445},"tags\u002Ftags\u002Ffacebook.yml",{},"facebook","tags\u002Ffacebook","xk1FSKdOP155PdsTUy6lbefdoi6pOrwzZtVO8B52vMo",{"id":447,"extension":207,"meta":448,"name":449,"slug":449,"stem":450,"__hash__":451},"tags\u002Ftags\u002Ffanpage.yml",{},"fanpage","tags\u002Ffanpage","RoMU1ceix1opnNG2LPoGzfOjVZE128Gmk12ZtDAQxrM",{"id":453,"extension":207,"meta":454,"name":455,"slug":455,"stem":456,"__hash__":457},"tags\u002Ftags\u002Ffigcraft.yml",{},"figcraft","tags\u002Ffigcraft","WTLpMjDrY2RSAriKP_PIhPFrUfRbSjesfrpRp5_eTQ4",{"id":459,"extension":207,"meta":460,"name":461,"slug":461,"stem":462,"__hash__":463},"tags\u002Ftags\u002Ffigma.yml",{},"figma","tags\u002Ffigma","HqDjUE96DWwR7A2TOHbGrBJgtOm0WhFG5odvyZ2Sd30",{"id":465,"extension":207,"meta":466,"name":467,"slug":467,"stem":468,"__hash__":469},"tags\u002Ftags\u002Fflora-art.yml",{},"flora-art","tags\u002Fflora-art","EZJoljjwcgycvXhzhoZltu8jVe2P_rSd_t7-DmugrCs",{"id":471,"extension":207,"meta":472,"name":473,"slug":473,"stem":474,"__hash__":475},"tags\u002Ftags\u002Ffront-end.yml",{},"front-end","tags\u002Ffront-end","xKzeWb2B7yr2l4WBGtpyUzD1T_sBK5i-sb21-MEDOWw",{"id":477,"extension":207,"meta":478,"name":479,"slug":480,"stem":481,"__hash__":482},"tags\u002Ftags\u002Ffront-end-developer.yml",{},"front-end developer","front-end-developer","tags\u002Ffront-end-developer","rHwMfWcbpd8wXqIVD1HzPWxBheHq8V_9TdHCHkz4Sp8",{"id":484,"extension":207,"meta":485,"name":486,"slug":486,"stem":487,"__hash__":488},"tags\u002Ftags\u002Ffrontend.yml",{},"frontend","tags\u002Ffrontend","CxnBlT8roa7DydGYGxgRVXKKTvJrkjMMQrvHZQMxukA",{"id":490,"extension":207,"meta":491,"name":492,"slug":492,"stem":493,"__hash__":494},"tags\u002Ftags\u002Fga4.yml",{},"ga4","tags\u002Fga4","rRvTzxNn5DJ4Sf5NYfC7bdlPytNph9v_BV9e-9z8mng",{"id":496,"extension":207,"meta":497,"name":498,"slug":498,"stem":499,"__hash__":500},"tags\u002Ftags\u002Fgamepad.yml",{},"gamepad","tags\u002Fgamepad","Gsi3HzAfw68AJR6qCt8qeuS7Euw22ZMSpnaKNw0QV-A",{"id":502,"extension":207,"meta":503,"name":504,"slug":504,"stem":505,"__hash__":506},"tags\u002Ftags\u002Fgoalkicker.yml",{},"goalkicker","tags\u002Fgoalkicker","L_zNfxJfO6lZOUiLaE5m_ggQUX0komBXXth0SrszFUk",{"id":508,"extension":207,"meta":509,"name":510,"slug":510,"stem":511,"__hash__":512},"tags\u002Ftags\u002Fgoogle-analytics.yml",{},"google-analytics","tags\u002Fgoogle-analytics","04tt2kepradezfP_kRSWsq1w1BDQ6kJaoVd5RB3wCT4",{"id":514,"extension":207,"meta":515,"name":516,"slug":516,"stem":517,"__hash__":518},"tags\u002Ftags\u002Fhandbook.yml",{},"handbook","tags\u002Fhandbook","D0-VmrV-_WQQnlVvaePXWciWrJ8zuWNJoJULW_rOpmI",{"id":520,"extension":207,"meta":521,"name":522,"slug":523,"stem":524,"__hash__":525},"tags\u002Ftags\u002Fhtml-api.yml",{},"HTML API","html-api","tags\u002Fhtml-api","DBZv8DJ2hZR64GhJALF_-YzUG4mZWG9m2VZE76eM_wY",{"id":527,"extension":207,"meta":528,"name":529,"slug":529,"stem":530,"__hash__":531},"tags\u002Ftags\u002Fhtml5.yml",{},"html5","tags\u002Fhtml5","fcqPnoul30jPoEk6tO8K9WWwU8XyFz3N7-GAse2uwsQ",{"id":533,"extension":207,"meta":534,"name":535,"slug":535,"stem":536,"__hash__":537},"tags\u002Ftags\u002Fimmich.yml",{},"immich","tags\u002Fimmich","yRqxfTgoJptMOBpcKUS-JAmsUYKQZe4N5gyGFXSxoyU",{"id":539,"extension":207,"meta":540,"name":541,"slug":542,"stem":543,"__hash__":544},"tags\u002Ftags\u002Finteligentny-dom.yml",{},"inteligentny dom","inteligentny-dom","tags\u002Finteligentny-dom","LwWCH_MYDfKSgfl9wyRWrWegvCgb2hAnXMlON3OQ0dk",{"id":546,"extension":207,"meta":547,"name":548,"slug":549,"stem":550,"__hash__":551},"tags\u002Ftags\u002Fjaws.yml",{},"Jaws","jaws","tags\u002Fjaws","aklZIj6z2_fzRQ_h9RtAfvXgDhHH9v02f224m6u8B7s",{"id":553,"extension":207,"meta":554,"name":555,"slug":555,"stem":556,"__hash__":557},"tags\u002Ftags\u002Fjunior.yml",{},"junior","tags\u002Fjunior","ega8Cjq-Z5swNxexQG-ROW8hvi0eaDCJj-l4ILDW-4U",{"id":559,"extension":207,"meta":560,"name":561,"slug":201,"stem":562,"__hash__":563},"tags\u002Ftags\u002Fkariera-w-it.yml",{},"kariera w IT","tags\u002Fkariera-w-it","tyqsMUw9eQaVgTnsZy9DZAHFQXZNe0sDZavdgJ0KTcA",{"id":565,"extension":207,"meta":566,"name":567,"slug":568,"stem":569,"__hash__":570},"tags\u002Ftags\u002Fkobiety-w-it.yml",{},"kobiety w IT","kobiety-w-it","tags\u002Fkobiety-w-it","Gm0D6QX7IUT1CDThH6LuhQtWOOWFop09QiDZwX_Tm7c",{"id":572,"extension":207,"meta":573,"name":574,"slug":574,"stem":575,"__hash__":576},"tags\u002Ftags\u002Fkonferencja.yml",{},"konferencja","tags\u002Fkonferencja","-n95F1XvVC7rR9O9sOxyxnKIJBm4i5o3Md_Q-Z72occ",{"id":578,"extension":207,"meta":579,"name":223,"slug":223,"stem":580,"__hash__":581},"tags\u002Ftags\u002Fkonferencje.yml",{},"tags\u002Fkonferencje","Qf_9S1xyR0mqWi1CzdU_iGIwcU8Z0ET_3JBEIOWhaxA",{"id":583,"extension":207,"meta":584,"name":230,"slug":230,"stem":585,"__hash__":586},"tags\u002Ftags\u002Fkonfiguracja.yml",{},"tags\u002Fkonfiguracja","r2NNwL_ZY7xvPy0pUN2IPK8U6qBXSfay_MZbt1FpC2I",{"id":588,"extension":207,"meta":589,"name":590,"slug":590,"stem":591,"__hash__":592},"tags\u002Ftags\u002Fkoronawirus.yml",{},"koronawirus","tags\u002Fkoronawirus","8DgCLCZ1uSF_kl0dmgiEVVM-KkZFxGpXJus3fmMH4sE",{"id":594,"extension":207,"meta":595,"name":596,"slug":597,"stem":598,"__hash__":599},"tags\u002Ftags\u002Fksiazki-programistyczne.yml",{},"książki programistyczne","ksiazki-programistyczne","tags\u002Fksiazki-programistyczne","DF1l0MrjODlaeQ0evw8JedIJJb3v4MpesV0Fi6HpViQ",{"id":601,"extension":207,"meta":602,"name":603,"slug":604,"stem":605,"__hash__":606},"tags\u002Ftags\u002Flenovo-m710q.yml",{},"lenovo m710q","lenovo-m710q","tags\u002Flenovo-m710q","H2DSlpm_FUSkpZXj5AZxrXjTzdGXcfWhIFXE8MAjoJw",{"id":608,"extension":207,"meta":609,"name":610,"slug":610,"stem":611,"__hash__":612},"tags\u002Ftags\u002Fmcp.yml",{},"mcp","tags\u002Fmcp","3PkWXTczUl4idUlqZVtwyAQ2kQ3-wsGGRK8B5IciLZI",{"id":614,"extension":207,"meta":615,"name":616,"slug":616,"stem":617,"__hash__":618},"tags\u002Ftags\u002Fmid.yml",{},"mid","tags\u002Fmid","61US_hzDYC5fw5yPUWya7ZNjc9fOddRUJyOJU3oVKaM",{"id":620,"extension":207,"meta":621,"name":622,"slug":623,"stem":624,"__hash__":625},"tags\u002Ftags\u002Fmini-pc.yml",{},"mini pc","mini-pc","tags\u002Fmini-pc","zCEZkcdMTwLbaNGmGiT8qGCtnECxEafkiJ-glDrozw0",{"id":627,"extension":207,"meta":628,"name":629,"slug":630,"stem":631,"__hash__":632},"tags\u002Ftags\u002Fnas.yml",{},"NAS","nas","tags\u002Fnas","RsN64SVV6BmbaR7e4pVVvGgbxQ0q8ihj5J4b_1oPH2k",{"id":634,"extension":207,"meta":635,"name":237,"slug":237,"stem":636,"__hash__":637},"tags\u002Ftags\u002Fnauka.yml",{},"tags\u002Fnauka","bMIyGRMcT5SRj0bxdrER6sibTNLAHr1enmElQI67jTo",{"id":639,"extension":207,"meta":640,"name":641,"slug":642,"stem":643,"__hash__":644},"tags\u002Ftags\u002Fnauka-programowania.yml",{},"nauka programowania","nauka-programowania","tags\u002Fnauka-programowania","M04c5RtH0Fu4ikOuW9fLy2-g2YBIAX0Yj9SHKEwOuUg",{"id":646,"extension":207,"meta":647,"name":648,"slug":649,"stem":650,"__hash__":651},"tags\u002Ftags\u002Fnvda.yml",{},"NVDA","nvda","tags\u002Fnvda","AS3XsW73sA9-MAI4JVv4y7luo2oGkpXrGptc51MKLQY",{"id":653,"extension":207,"meta":654,"name":655,"slug":656,"stem":657,"__hash__":658},"tags\u002Ftags\u002Fochrona-rodzicielska.yml",{},"ochrona rodzicielska","ochrona-rodzicielska","tags\u002Fochrona-rodzicielska","DZHsS1aBzb6OmeQFhCXy3Qu3QUMHsrbbN62bXmyBB0Q",{"id":660,"extension":207,"meta":661,"name":662,"slug":662,"stem":663,"__hash__":664},"tags\u002Ftags\u002Foptimization.yml",{},"optimization","tags\u002Foptimization","fJedkuv-GIoYXYs-z7AFgjvCxunavWHOWZDesN1EgFU",{"id":666,"extension":207,"meta":667,"name":668,"slug":669,"stem":670,"__hash__":671},"tags\u002Ftags\u002Forganizacja-pracy.yml",{},"organizacja pracy","organizacja-pracy","tags\u002Forganizacja-pracy","IJWHAuqRIlzOIgQbp6B0dYJLpApXOyvDii-k8n_CUCQ",{"id":673,"extension":207,"meta":674,"name":243,"slug":244,"stem":675,"__hash__":676},"tags\u002Ftags\u002Fosx.yml",{},"tags\u002Fosx","QymfouNjzTcNrsPkrZeaPTZdKpMsdYilpn7HRI1FxQQ",{"id":678,"extension":207,"meta":679,"name":680,"slug":681,"stem":682,"__hash__":683},"tags\u002Ftags\u002Fpanel-macro.yml",{},"panel macro","panel-macro","tags\u002Fpanel-macro","WrhWywY5PTfhm7n_TuxTZEWwebeWKfYiQf6n6nh19t4",{"id":685,"extension":207,"meta":686,"name":687,"slug":688,"stem":689,"__hash__":690},"tags\u002Ftags\u002Fpassword-manager.yml",{},"password manager","password-manager","tags\u002Fpassword-manager","viAfKlsGbzjczJJrb8pwaB4tInjCfLzynbSm-GRQz4Y",{"id":692,"extension":207,"meta":693,"name":694,"slug":694,"stem":695,"__hash__":696},"tags\u002Ftags\u002Fpdf.yml",{},"pdf","tags\u002Fpdf","UTB02hK82S5LzDB9kqZWrDRFb8SYzHfFRgCsqFwdBcE",{"id":698,"extension":207,"meta":699,"name":700,"slug":701,"stem":702,"__hash__":703},"tags\u002Ftags\u002Fphp.yml",{},"PHP","php","tags\u002Fphp","Id59psmnOEw6xZ04LGSXqaCSXElgAZVfZdIWk4TTMmU",{"id":705,"extension":207,"meta":706,"name":707,"slug":707,"stem":708,"__hash__":709},"tags\u002Ftags\u002Fpi-hole.yml",{},"pi-hole","tags\u002Fpi-hole","1YJ1tr1Tr23ItFg6rYXw6iKjvPJCdYb2MB_5W1FdZNw",{"id":711,"extension":207,"meta":712,"name":713,"slug":713,"stem":714,"__hash__":715},"tags\u002Ftags\u002Fpixel-mania.yml",{},"pixel-mania","tags\u002Fpixel-mania","N9WX_K8mFmAndjRdRzZX1PonLHyneP4XCJe9kQlGOpY",{"id":717,"extension":207,"meta":718,"name":719,"slug":720,"stem":721,"__hash__":722},"tags\u002Ftags\u002Fplaywright.yml",{},"PlayWright","playwright","tags\u002Fplaywright","fZAbd5k3k85yeGire7iJzvnRk00Wfww8OTu1h6rEuZM",{"id":724,"extension":207,"meta":725,"name":726,"slug":726,"stem":727,"__hash__":728},"tags\u002Ftags\u002Fpraca.yml",{},"praca","tags\u002Fpraca","ra3_bHnZqDrux1PiJ_pW6eqfX7l-uIFUPUhPqaq5cf4",{"id":730,"extension":207,"meta":731,"name":732,"slug":733,"stem":734,"__hash__":735},"tags\u002Ftags\u002Fpraca-zdalna.yml",{},"praca zdalna","praca-zdalna","tags\u002Fpraca-zdalna","HD5EOgzs-b3t5KIBRxlWQr0FuQVJ4N7eLQJV77YWcqc",{"id":737,"extension":207,"meta":738,"name":739,"slug":739,"stem":740,"__hash__":741},"tags\u002Ftags\u002Fprezentacja.yml",{},"prezentacja","tags\u002Fprezentacja","eiP5x-l400TtOy-gxO3TyOqYwcD4LP65jJ--7H-jyng",{"id":743,"extension":207,"meta":744,"name":745,"slug":745,"stem":746,"__hash__":747},"tags\u002Ftags\u002Fprivacy.yml",{},"privacy","tags\u002Fprivacy","Ln1AAZQ3fPOzuMJB0BWwUsjwaWTI7cFtzI6TaPrvKXc",{"id":749,"extension":207,"meta":750,"name":191,"slug":191,"stem":751,"__hash__":752},"tags\u002Ftags\u002Fprogramowanie.yml",{},"tags\u002Fprogramowanie","EUO8owu6V8cJivzRtVvD12KgW4ojOCp-N7aI4euHEa0",{"id":754,"extension":207,"meta":755,"name":756,"slug":756,"stem":757,"__hash__":758},"tags\u002Ftags\u002Fproxmox.yml",{},"proxmox","tags\u002Fproxmox","2AZfZmPZffxT3YuTVGHbsGvqKzpNRfot-OjFS6kkSYs",{"id":760,"extension":207,"meta":761,"name":762,"slug":763,"stem":764,"__hash__":765},"tags\u002Ftags\u002Fprywatny-dns.yml",{},"prywatny DNS","prywatny-dns","tags\u002Fprywatny-dns","kq-27-SNzP2YitFANg5iLgu0kdzyufoiOCLYApAehUc",{"id":767,"extension":207,"meta":768,"name":769,"slug":769,"stem":770,"__hash__":771},"tags\u002Ftags\u002Fprzekwalifikowanie.yml",{},"przekwalifikowanie","tags\u002Fprzekwalifikowanie","TqQNM6H8dfkRMTjNT8ZWyzynSMGeFjxseCt7-fZq0nA",{"id":773,"extension":207,"meta":774,"name":775,"slug":776,"stem":777,"__hash__":778},"tags\u002Ftags\u002Freact.yml",{},"React","react","tags\u002Freact","nXIcvF19iFz3UIXk2jbbJKRrr1_S9NLNYH3PUX_a2C4",{"id":780,"extension":207,"meta":781,"name":782,"slug":782,"stem":783,"__hash__":784},"tags\u002Ftags\u002Fredux.yml",{},"redux","tags\u002Fredux","CYtiFQKJae6MZE4Z_2qWwt7OGctPAutMzfD9f35a6-A",{"id":786,"extension":207,"meta":787,"name":788,"slug":788,"stem":789,"__hash__":790},"tags\u002Ftags\u002Fretro.yml",{},"retro","tags\u002Fretro","5AjMkMU44tDn8TV2FSTzbrvxoE7rplMmkLej7E-RIYM",{"id":792,"extension":207,"meta":793,"name":794,"slug":795,"stem":796,"__hash__":797},"tags\u002Ftags\u002Fretropi.yml",{},"RetroPi","retropi","tags\u002Fretropi","v_z0VjrAHiqYkzENB2DRMmo-V9VwE-8D2V_pRT-EBxw",{"id":799,"extension":207,"meta":800,"name":801,"slug":802,"stem":803,"__hash__":804},"tags\u002Ftags\u002Frozwoj.yml",{},"rozwój","rozwoj","tags\u002Frozwoj","RkL4It2FQnfcyHt1gNPjQ7cLqxrpgMy9ewFnPkF5sms",{"id":806,"extension":207,"meta":807,"name":808,"slug":809,"stem":810,"__hash__":811},"tags\u002Ftags\u002Frzemieslnik.yml",{},"rzemieślnik","rzemieslnik","tags\u002Frzemieslnik","fLVgsq47mga12X6gNKQ6QM5tpWdwICnLJwfSDwk1xEE",{"id":813,"extension":207,"meta":814,"name":815,"slug":815,"stem":816,"__hash__":817},"tags\u002Ftags\u002Fsaas.yml",{},"saas","tags\u002Fsaas","IJK35nx0P9hIm-I-szhYuII4LVixyUi2zgQINNh0irc",{"id":819,"extension":207,"meta":820,"name":821,"slug":822,"stem":823,"__hash__":824},"tags\u002Ftags\u002Fsamodzielnosc.yml",{},"samodzielność","samodzielnosc","tags\u002Fsamodzielnosc","mu6DqJVN-dhRiXCnV4A5ewTRx_ndkWH_pu7Fdf7n6XI",{"id":826,"extension":207,"meta":827,"name":828,"slug":828,"stem":829,"__hash__":830},"tags\u002Ftags\u002Fselfhosting.yml",{},"selfhosting","tags\u002Fselfhosting","ScAMu2i5h-QpOOGEuIvBN9fQn0ZmfyYfvD-561cUzKs",{"id":832,"extension":207,"meta":833,"name":834,"slug":834,"stem":835,"__hash__":836},"tags\u002Ftags\u002Fsenior.yml",{},"senior","tags\u002Fsenior","DFUFihqxLSI2g34_DFYLVSXQnP79966itG8NnBs44TE",{"id":838,"extension":207,"meta":839,"name":840,"slug":840,"stem":841,"__hash__":842},"tags\u002Ftags\u002Fsentry.yml",{},"sentry","tags\u002Fsentry","1GB1pnjVg6ZwTqvwK7ZE529QpP-274G7z278-psv9U8",{"id":844,"extension":207,"meta":845,"name":846,"slug":847,"stem":848,"__hash__":849},"tags\u002Ftags\u002Fsieci-komputerowe.yml",{},"sieci komputerowe","sieci-komputerowe","tags\u002Fsieci-komputerowe","lziU51DXijHvzSYVgbK5r_aRCBS9KLdgU5FWjE3pD4s",{"id":851,"extension":207,"meta":852,"name":853,"slug":854,"stem":855,"__hash__":856},"tags\u002Ftags\u002Fsmart-home.yml",{},"smart home","smart-home","tags\u002Fsmart-home","wjGS16vdTWjBvPIfyZ7Jjv2rSAUfgKxYQTfVmfE_oNc",{"id":858,"extension":207,"meta":859,"name":860,"slug":861,"stem":862,"__hash__":863},"tags\u002Ftags\u002Fsmr.yml",{},"SMR","smr","tags\u002Fsmr","hd_86HRNRQ5vp9GFDgvFR3iXcRs57XNvESz05e-vh-o",{"id":865,"extension":207,"meta":866,"name":867,"slug":181,"stem":868,"__hash__":869},"tags\u002Ftags\u002Fspec-driven-development.yml",{},"spec driven development","tags\u002Fspec-driven-development","pRJfzF2rB7P3VMxiDxsyAopJH0NcnJST_JxiVDwkL68",{"id":871,"extension":207,"meta":872,"name":873,"slug":873,"stem":874,"__hash__":875},"tags\u002Ftags\u002Fspotkanie.yml",{},"spotkanie","tags\u002Fspotkanie","G-4xZsmDWDaZnA1t7fWrsGY0CvA2PWBRch_ISxgV3eY",{"id":877,"extension":207,"meta":878,"name":879,"slug":879,"stem":880,"__hash__":881},"tags\u002Ftags\u002Fstash.yml",{},"stash","tags\u002Fstash","x-cfxrcr_me1q-Ea4BqtRl041a1CjwZbFM76VlobkVE",{"id":883,"extension":207,"meta":884,"name":885,"slug":886,"stem":887,"__hash__":888},"tags\u002Ftags\u002Fstore-management.yml",{},"store management","store-management","tags\u002Fstore-management","BDlb8jliEvzP4ByR_nwh5YcPAphegyjsvxnwheppvwM",{"id":890,"extension":207,"meta":891,"name":892,"slug":893,"stem":894,"__hash__":895},"tags\u002Ftags\u002Fstream-deck.yml",{},"stream deck","stream-deck","tags\u002Fstream-deck","ETKaTcPMSGRXiF8fX9HaCChrkWvjK1Qhc8DCtKNRLFo",{"id":897,"extension":207,"meta":898,"name":899,"slug":900,"stem":901,"__hash__":902},"tags\u002Ftags\u002Fstudia-podyplomowe.yml",{},"studia podyplomowe","studia-podyplomowe","tags\u002Fstudia-podyplomowe","CllbIMrpHwk7nHpdgNS5EJlfoY37AYtu6D28xcL7B8Y",{"id":904,"extension":207,"meta":905,"name":906,"slug":906,"stem":907,"__hash__":908},"tags\u002Ftags\u002Fswitch.yml",{},"switch","tags\u002Fswitch","PqeuQm8ai89DcVFTdIBBYnrs6IVq0oystkF3JdV2cbQ",{"id":910,"extension":207,"meta":911,"name":912,"slug":913,"stem":914,"__hash__":915},"tags\u002Ftags\u002Fszafa-rack.yml",{},"szafa rack","szafa-rack","tags\u002Fszafa-rack","Tdq-0TqjtHfOvyhnHIwrDsPzQYMI6Rkb3iJBoqgudAc",{"id":917,"extension":207,"meta":918,"name":919,"slug":919,"stem":920,"__hash__":921},"tags\u002Ftags\u002Fszkolenia.yml",{},"szkolenia","tags\u002Fszkolenia","Ty9KLofCdboQngGvYkJOH1YZpBX-E3_Y1SLrdGucptY",{"id":923,"extension":207,"meta":924,"name":925,"slug":926,"stem":927,"__hash__":928},"tags\u002Ftags\u002Fszkolenie-front-end.yml",{},"szkolenie front-end","szkolenie-front-end","tags\u002Fszkolenie-front-end","yv2XwBbhwF8m1vceHXglBt_lax32HDj4iqYS8ymfIpM",{"id":930,"extension":207,"meta":931,"name":932,"slug":933,"stem":934,"__hash__":935},"tags\u002Ftags\u002Fszkolnictwo-zawodowe.yml",{},"szkolnictwo zawodowe","szkolnictwo-zawodowe","tags\u002Fszkolnictwo-zawodowe","wHy70cvPzW-iXNTesa8dnmsUN3GZ6RQ_08rvp2jcr-o",{"id":937,"extension":207,"meta":938,"name":939,"slug":939,"stem":940,"__hash__":941},"tags\u002Ftags\u002Ftech3camp.yml",{},"tech3camp","tags\u002Ftech3camp","2xN4prsqldeVcTsCibyLj-T84k_q27SekfsQ9H3ml6w",{"id":943,"extension":207,"meta":944,"name":168,"slug":168,"stem":945,"__hash__":946},"tags\u002Ftags\u002Ftestowanie.yml",{},"tags\u002Ftestowanie","bQ7J7HLrZe6c9Me3bn_3VCbshav5tsqNTBIwd0xkRaQ",{"id":948,"extension":207,"meta":949,"name":950,"slug":950,"stem":951,"__hash__":952},"tags\u002Ftags\u002Ftesty.yml",{},"testy","tags\u002Ftesty","JDNtVkIDLY5e-th779qHOQFRrQ6Ywoq8us2HXlBz9PY",{"id":954,"extension":207,"meta":955,"name":956,"slug":957,"stem":958,"__hash__":959},"tags\u002Ftags\u002Ftruenas.yml",{},"TrueNas","truenas","tags\u002Ftruenas","jGviBDrcOLcc4LIDAMUINs_clt6cqQIbnmCsGjlBoEU",{"id":961,"extension":207,"meta":962,"name":963,"slug":963,"stem":964,"__hash__":965},"tags\u002Ftags\u002Ftuya.yml",{},"tuya","tags\u002Ftuya","MwpPoYlxeAiebaRVNdxytmFq9k0BpiTEbiEvwh4pfq4",{"id":967,"extension":207,"meta":968,"name":969,"slug":969,"stem":970,"__hash__":971},"tags\u002Ftags\u002Fublock.yml",{},"ublock","tags\u002Fublock","EPnKEvKkfWB2hbpkolTIytNQ9c12jSrnctf8CWEVbUM",{"id":973,"extension":207,"meta":974,"name":975,"slug":976,"stem":977,"__hash__":978},"tags\u002Ftags\u002Fvibe-coding.yml",{},"vibe coding","vibe-coding","tags\u002Fvibe-coding","7opTTOzdTg7lmOqjdEXuPDBmub2bke1Tqn1DEPdtUT4",{"id":980,"extension":207,"meta":981,"name":982,"slug":983,"stem":984,"__hash__":985},"tags\u002Ftags\u002Fvirtual-host.yml",{},"virtual host","virtual-host","tags\u002Fvirtual-host","Ru2r4wU7txKcWDbL3hq2QGx7v8gKwTJE25BItrzjqCQ",{"id":987,"extension":207,"meta":988,"name":989,"slug":990,"stem":991,"__hash__":992},"tags\u002Ftags\u002Fvoiceover.yml",{},"VoiceOver","voiceover","tags\u002Fvoiceover","7_jZqkfOk163vezQCATCpkIhdxmxfXe5dsLjgORGRWc",{"id":994,"extension":207,"meta":995,"name":996,"slug":997,"stem":998,"__hash__":999},"tags\u002Ftags\u002Fvue.yml",{},"Vue","vue","tags\u002Fvue","9ztytvQnoFLSGIXCwVz0HDl1yEBgdxBtwfIb4xxED8w",{"id":1001,"extension":207,"meta":1002,"name":1003,"slug":272,"stem":1004,"__hash__":1005},"tags\u002Ftags\u002Fvue-js.yml",{},"vue.js","tags\u002Fvue-js","ZEglZJ4b32MxGRUCWg3ij0_Sz-YkJDI60yOFUG3Dip8",{"id":1007,"extension":207,"meta":1008,"name":1009,"slug":1009,"stem":1010,"__hash__":1011},"tags\u002Ftags\u002Fvuejs.yml",{},"vuejs","tags\u002Fvuejs","Qz3030ujqXE_33tL5hbF8n1MGIh1jpRtdzXVrQT79jA",{"id":1013,"extension":207,"meta":1014,"name":1015,"slug":1015,"stem":1016,"__hash__":1017},"tags\u002Ftags\u002Fvuenews.yml",{},"vuenews","tags\u002Fvuenews","5I7T-cG9aZzeR62I-tWYDruQvjkSbRxtAeDI9otWrR8",{"id":1019,"extension":207,"meta":1020,"name":1021,"slug":1021,"stem":1022,"__hash__":1023},"tags\u002Ftags\u002Fvuetoolbox.yml",{},"vuetoolbox","tags\u002Fvuetoolbox","y5NXiZfQviI16DIkNjTxSwnLQIyrXs7OBZjVY1IyNmk",{"id":1025,"extension":207,"meta":1026,"name":1027,"slug":1027,"stem":1028,"__hash__":1029},"tags\u002Ftags\u002Fvuex.yml",{},"vuex","tags\u002Fvuex","ksF82HLoN49mJn2cJ0DhYz_Dt6mlrJDT82Ufu6QKmKQ",{"id":1031,"extension":207,"meta":1032,"name":1033,"slug":1034,"stem":1035,"__hash__":1036},"tags\u002Ftags\u002Fweb-development.yml",{},"web development","web-development","tags\u002Fweb-development","144N0DLmtEIX98zdSuOWIsCZYMHyxStp8_ZksWK2M7E",{"id":1038,"extension":207,"meta":1039,"name":1040,"slug":1041,"stem":1042,"__hash__":1043},"tags\u002Ftags\u002Fwladyslawowo.yml",{},"Władysławowo","wladyslawowo","tags\u002Fwladyslawowo","LgrtfAzosbyNoEeZ6_GWMrueP29fN7fPL3N5Kp5Wm4w",{"id":1045,"extension":207,"meta":1046,"name":1047,"slug":1048,"stem":1049,"__hash__":1050},"tags\u002Ftags\u002Fwork-life-balance.yml",{},"work-life balance","work-life-balance","tags\u002Fwork-life-balance","hXw9EMtMUVm71LSUBz1o6Ttz7xlyrsnMo-VOEfMJwr0",{"id":1052,"extension":207,"meta":1053,"name":1054,"slug":1055,"stem":1056,"__hash__":1057},"tags\u002Ftags\u002Fxbox.yml",{},"XBOX","xbox","tags\u002Fxbox","tDsqBFEx88ZSQxV8Q78dFlkSdjNdQOwFU4jn0D2wcYQ",{"id":1059,"avatar":1060,"bio":1061,"extension":207,"intro":1062,"links":1063,"meta":1068,"name":1069,"slug":6,"stem":1070,"__hash__":1071},"authors\u002Fauthors\u002Fmaciej-walczak.yml","\u002Fmaciej.png","Senior Front-End Developer, właściciel MacWebcoder.","Cześć! Nazywam się Maciek i od ponad 20 lat zajmuję się programowaniem – głównie front‑endu. Na tym blogu piszę o swoich przemyśleniach z pracy programisty, o technologii, homelab i ciekawostkach ze świata IT.",[1064],{"label":1065,"url":1066,"icon":1067},"YouTube","https:\u002F\u002Fwww.youtube.com\u002Fchannel\u002FUCMG_PvHPcSe0TCmnIXvzB1Q","i-lucide-youtube",{},"Maciej Walczak","authors\u002Fmaciej-walczak","zR4CssmAAiZ3XLyomJsaFt6vS-eKt3306erj5lV90_8",1793592059348]