środa, czerwca 03, 2026

O urokach uprzęży – czyli o tym, że okiełznana moc LLM-ów jest bardziej użyteczna niż nieokiełznana

GenAI/LLMy dziś to są konie pociągowe. O tym, jak dobrze działają, decyduje jakość uprzęży (aka harness).

To było widać w analizie wycieku z Claude Code, która wywołała wiele uśmieszków i komentarzy w stylu: „Jak to? Najlepsze narzędzie do okiełznania LLM-ów jest takie prostackie?”. Masa promptów, a do tego kod z w pełni deterministycznymi mechanizmami, jak wykrywanie frustracji przez przekleństwa...

Jakoś wielu komentatorom umykało, że ten pełny determinizm regexów jest mechanizmem kontroli, wymuszającym stabilność systemu. Fakt – ten do wykrywania frustracji był pewnie po prostu łatwiejszy do zaimplementowania lokalnie niż wysyłanie całego kontekstu do LLM-a tylko po to, by ten wyłapał kilka wulgaryzmów.

Ale jak się zastanowić, to nie jest dziwne.
Na dziś LLMy są świetne, ale jeszcze nie potrafią się same kontrolować. Nie mają zdrowego rozsądku, nie znają relacji przestrzennych, a nawet nie do końca rozumieją, że np. jeśli człowiek je i ma usta pełne jedzenia, to nie może jednocześnie mówić.

W pierwszej fazie zachwytów nad LLM-ami poszliśmy na żywioł. Korzystaliśmy maksymalnie z tego, że potrafią na podstawie poprzednich słów genialnie napisać kolejne. Taki LLM jest sprytniejszy od łańcuchów Markowa – choć nie rozumie per se tego, co pisze, to sama gramatyka i język kodują pewne informacje i zależności. To specyficzne „strukturalne zrozumienie” (nie kognitywne, lecz wynikające z wyczucia struktury) wynika stąd, że model widzi cały kontekst jednocześnie.
Okazało się też, że świetnie działa to na kodzie.

Szybko jednak wyszło na jaw, że to podejście sprawdza się głównie wtedy, gdy na wynik patrzy człowiek, weryfikuje go i na bieżąco przygląda się temu, co powstało.

To jest IMHO ten punkt, którego nie dostrzeżono na początku, gdy wielu uznawało, że LLM-y natychmiast wyprą ludzi. Bo coś, co modelowi zajmuje ułamki sekundy, człowiek musi robić przez 15-30 minut albo dłużej.

Sam pamiętam moje zdziwienie, gdy dałem LLM-owi zadanie, które dawaliśmy programistom podczas rekrutacji. Zrobił to w kilka sekund, razem z napisaniem kodu i wskazaniem ukrytych pułapek (gotchas)... (OK, sam, gdy dostałem to zadanie, rozwiązanie znałem po 1,5 sekundy, z czego całą sekundę spędziłem na szukaniu gotcha, ale faktem jest, że napisanie czystego kodu zajęło mi potem te 15-20 minut).

W tym miejscu nastąpił wysyp masy narzędzi, które działały... ale jednak nie do końca.

Pierwszym ruchem było dodawanie lepszych instrukcji i cały prompt engineering, który sprowadzał się do tego, by wyjaśnić LLM-owi, co dokładnie ma zrobić i jak ma weryfikować swoje działania. W końcu jeśli podamy modelowi precyzyjną instrukcję oraz kryteria sukcesu, to zazwyczaj dowiezie wynik.

Twórcy LLM-ów też to zauważyli. Dostrzegli, że często sam model potrafi rozbić problem na mniejsze części, co doprowadziło do rozwoju metod Chain of Thought. Dziś, w modelach z fazą „thinking”, AI samo wykonuje tę potężną pracę analityczną przed wypuszczeniem odpowiedzi.

Teraz zaś wchodzimy w moment, gdy dociera do nas, że LLM-y są świetne w generowaniu tekstu, ale musimy je kontrolować i zakładać im wspomnianą „uprząż”. To może być coś tak prostego jak regex czy inne deterministyczne metody walidacji, a mogą to być osobne prompty i modele obserwujące odpowiedź i reagujące na nią. 

No bo jak na przykład testować coś, co pod spodem używa LLM-a? 
Jedną z metod jest karmienie go znanymi przypadkami testowymi, gdzie z góry znamy oczekiwany rezultat – i nagle mamy klasyczny test regresyjny dla sztucznej inteligencji. To zadanie jest znacznie prostsze, gdy LLM wyrzuca ustrukturyzowane dane (np. JSON) albo gdy generuje zapytania do bazy danych, bo wtedy możemy po prostu zweryfikować końcowy wynik operacji na bazie.

Innym podejściem jest instruowanie modelu, by najpierw napisał testy, a później... kategoryczne zabronienie mu ich modyfikowania. To kluczowe, bo LLM-y są sprytne i domyślnie wybierają ścieżkę najmniejszego oporu. Jeśli kod nie przechodzi testu, model potrafi wpaść na pomysł, że najprościej będzie po prostu zmienić treść testu.

To znaczy... my, programiści, też tak czasem robimy. Różnica polega na tym, że człowiek z czasem uczy się, że test wolno zmienić tylko wtedy, gdy jego wywrotka jest faktycznie oczekiwanym rezultatem wprowadzonej zmiany w logice biznesowej. LLM tej etyki zawodowej jeszcze nie ma.

W ten sam trend wpisuje się podejście agentskie. Agent dostaje do dyspozycji konkretne narzędzia, a te narzędzia mają już twarde, kodowe ograniczenia. Jeśli na przykład funkcja do pobierania zawartości sieci dostanie zamiast poprawnego adresu URL bezpośredni link do lokalnego pliku, system od razu zgłosi błąd. Narzędzia są deterministyczne i ich użycie zmusza LLM do poruszania się w ściśle ograniczonej przestrzeni.

Co będzie dalej? Może – a w zasadzie to już się dzieje, bo sam łapię się na tym, że próbuję tak naprowadzać sztuczną inteligencję – kolejnym krokiem będzie okresowe odpytywanie LLM-a przez system nadzorujący: „Co Ty właściwie próbujesz w tym momencie zrobić i dlaczego?”. Odpowiedź, wraz z pełnym zapisem historii tej „rozmowy”, będzie następnie przekazywana do analizy innemu, niezależnemu modelowi pełniącemu funkcję sędziego.

Tu pojawia się pytanie, na które nie znamy jeszcze odpowiedzi, ale możemy się domyślać ;-)

No bo czy to możliwe, że LLM-y wciąż mają ogromną przestrzeń do autonomicznego wzrostu? Może w samym tym strukturalnym semi-zrozumieniu języka tkwi jeszcze więcej surowej mocy? Może same modele da się wytrenować tak, by realizowały część tych zadań kontrolnych i pilnowały same siebie? 
A może, jeśli dotarliśmy już blisko fizycznych granic architektury transformerów, ta kontrola będzie zadaniem dla nas, programistów? Nasza rola ewoluje: to już nie tylko pisanie kodu, ale budowanie zamkniętych „tras”, po których bezpiecznie mogą poruszać się LLM-y i agenty.

Część mnie uważa, że przyszłością jest właśnie ta druga opcja. 
Obecny wyścig gigantów GenAI wygląda już jak wojna na wyniszczenie. Nawet jeśli któryś z nich dotrze w końcu do mitycznego Graala, czyli prawdziwego AGI – systemu zdolnego rozwiązać dowolny problem i realnie „myślącego” w naszym ludzkim rozumieniu – to konkurencja zreplikuje ten sukces zaledwie 3 do 6 miesięcy później. Pierwszy gracz na miejscu po prostu nie zdąży wykopać fosy biznesowej. Cała idea zmonopolizowania rynku przez jedną „Superinteligencję” rozbija się o realia rynkowe. 

Nawet jeśli takie AGI zaprojektuje w ułamku sekundy lepsze procesory i wydajniejsze źródła energii, to fizyczny czas oczekiwania na wolne linie produkcyjne w fabrykach sprawi, że rywale szybko dogonią lidera. A niewykluczone, że będą mieli po drodze większe zasoby finansowe.

Stąd wydaje mi się, że czytelny sygnał, jaki płynie z rynku – gdzie wszyscy masowo podnoszą ceny za tokeny – jest prosty: branża już zrozumiała, że rewolucyjne AGI nie czai się tuż za rogiem. Albo alternatywnie: mają już AGI, które jako pierwsze racjonalnie wytłumaczyło im, że pora zacząć w końcu zarabiać prawdziwe pieniądze.


Podobne postybeta
wait() i notify()/notifyAll() - najbardziej nierozumiane metody klasy Object ;-)
Miałem farta...
Nie, Scrum nas nie "uratował" od Waterfalla... za to powoli sam się nim staje ;-)
Chciałem popsuć G1 i mi się na razie nie udało ;-)
Agent by Agent ;-) czyli o tworzeniu agenta AI agentem AI ;-)

Obszedłem cały kraj! ;-)

No stało się – obszedłem cały kraj. 

Taki mniejszy, wręcz miniaturowy, a oficjalnie: najmniejszy na świecie.


Obszedłem Watykan. To jest to zielone „kółko” po lewej stronie mapy. Jak widać po statystykach, tempo przez całą drogę było bardzo, ale to bardzo spacerowe.

W uszach miałem Mistrza i Małgorzatę, pod nogami Rzym (i miejscami Watykan) i tak sobie szedłem wokoło murów. Przeszedłem nawet przez watykańskie połączenie kolejowe. Działa ono na tyle rzadko, że to potężne kraty odcinają tory od rzymskiej ulicy, a nie tradycyjne szlabany. I trzeba przyznać – mają tam wyjątkowo dużą bramę dla pociągów.

A co do samego Mistrza i Małgorzaty...Słucham akurat „superprodukcji” z udziałem aktorów, ale szczerze mówiąc – czekam już, aż to się skończy, bo męczy mnie ta książka. Ewidentnie groteska to nie mój styl. Najlepsze są dla mnie te fragmenty, które dzieją się 2000 lat wcześniej: dialogi Poncjusza Piłata z Jeszuą i cała ta linia fabularna.

Te sceny przypomniały mi zresztą inną książkę, którą niedawno przesłuchałem (i która też mnie wymęczyła) – Dominion: The Making of the Western Mind. Jej główny przekaz mocno tu rezonuje: postać Jezusa i pierwotne chrześcijaństwo były absolutnie wyjątkowe w swoim przekazie na tle epoki. Rzym i inne ówczesne cywilizacje, mimo wysokiego poziomu rozwoju, miały podejście do ludzkiego życia, które z dzisiejszej perspektywy jest całkowicie abstrakcyjne. Masowe mordowanie ludzi było tam zwykłą, chłodną taktyką zarządzania. W takim świecie opowieść o bezwarunkowej miłości i wybaczeniu musiała brzmieć dla Rzymian jak całkowite szaleństwo.
Zresztą może to był i zamiar Bułhakowa zestawić tę groteskę z powieścią historyczną, żeby podkreślić groteskowość tej Moskwy?

Nie zmienia to jednak faktu, że dokonałem tego - obszedłem cały kraj! Co z tego, że najmniejszy na świecie? ;-)



Podobne postybeta
Czerwcowe książki
Czytelniczy listopad
Miałem farta...
Książkowy marzec :-)
Jak rozwiązać krzyżówkę? ;-)

Co się dzieje jak Ci zrobią Cancel lotu na lotnisku "startowym"?

No to w niedzielę miałem lecieć do Rzymu, ponieważ chciałem lecieć później (frajer ;-)) to wybrałem lot o 16:45 z Krakowa do Monachium, a później 19:05 czy jakoś tak z Monachium do Rzymu (FCO).

Coś mi sugerowało, że to może nie być najlepszy wybór... bo 2 lata temu lecąc do Wenecji miałem lecieć tym samym lotem i wyleciał z opóźnieniem i w końcu w Monachium spałem ;-)

Gdy w niedzielę w momencie gdy miał zacząć się boarding pojawiła się informacja, że samolot jest opóźniony o 2h już wiedziałem, że będę spał w Monachium.
Nawet się zbytnio nie zdenerwowałem, bardziej miałem - a takie jesteście dranie...

No to czekałem, jeszcze nas ciut bardziej opóźnili i w końcu zaczął się boarding... przepuścili parę osób i nagle jakieś brazylijskie małżeństwo to wstrzymało i panie z bramki zamiast 1 ich obsługuje, a druga puszcza pasażerów to one jakoś tak nagle zwolniły....

Później były telefony, jakieś wymiany zdań "15 minut? Szybki przegląd techniczny", później kolejne 15, jeszcze 10 i komentarz o resetowaniu... i w końcu Cancel ;-)

Po informacji o odwołaniu komunikat od pani z bramki, że chwilę trzeba poczekać bo muszą jeszcze się dowiedzieć gdzie wyładowane zostaną bagaże... w końcu info pas numer 2 i proszę tam iść... 

Wyjście nie jest takie proste, bo w Krakowie na Balicach w strefie odlotów nie ma (a przynajmniej ja nie widziałem) znaków w kierunku wyjścia, wyjście odbywa się nieoficjalnie obok kontroli bezpieczeństwa.

Wejście do miejsca gdzie są karuzele z bagażami też nie jest proste ;-) w Krakowie jest możliwość przejścia z rękawa po schodach w dół do odbioru bagażu, ale nas wyrzucili ze strefy bezpiecznej. Drzwi zaś do bagażu się otwierają tylko dla wychodzących, nie dla wchodzących ;-)
Trzeba iść do "zgubionego bagażu" (co wiem od ochrony bo się spytałem) i tam trzeba zadzwonić... ale ja już nie musiałem bo pan latał i już obsługiwał wcześniejszych z tego samego lotu.
Ogląda kartę pokładową, sprawdza numer lotu, jak właściwy to bierze 1 osobę i przeprowadza przez tajne przejście (to jest jeden korytarz), otwiera drzwi do strefy z bagażami i mówi który pas.

A w międzyczasie przychodzi mail z info o nowym bookingu, ale trzeba jeszcze zrobić oficjalny checkin (akurat tutaj stąd, że Lufthansa z którejś z tych swoich do bani linii przebookowała mnie w ramach sojuszu na Lot, który leciał w poniedziałek bezpośrednio do Rzymu)


Podobne postybeta
Co się dzieje gdy mój pierwszy samolot się spóźnia i mam mało czasu na przesiadkę?
Kurza twarz ;-)
Autobus ze skrzydłami...
Nie lubię Lufthansy
Jednak lubię United ;-)

niedziela, maja 31, 2026

Kurza twarz ;-)

Jest tak, moja wielka wyprawa do Rzymu odbywa się przez Monachium.

Ponieważ moje planowanie jest takie sobie to wybrałem późny lot uznając, że będę w Gliwicach na Fluffym... Nie pojechałem.

Na lotnisku byłem za wcześnie.

Jak już powinie zacząć się boarding to pojawiło się info, że jednak nie bo jesteśmy opóźnieni o 2 godziny i 5 minut.

Czyli planowany odlot z Krakowa do Monachium jest gdy zaczyna się boarding na mój samolot w Monachium ;-)

Systemy jeszcze nic nie stwierdziły, ale już w Monachium dostanę na 99% info, że lecę jutro ;-) i skierowanie do hotelu...

Co ciekawe to jest prawie kropka w kropkę to samo co miałem 2 lata temu lecąc do Wenecji, też późnym lotem ;-)

Bardzo możliwe, że tym samym. 

Z plusów ja już wiem który to jest przystanek 11 na którym się wsiada do autobusu który wiezie człowieka do hotelu ;-)

A miałem plan, że sobie jeszcze pójdę dziś zobaczyć Colloseum w nocy i może na Palatyn. A co najwyżej obejdę sobie hotel przy lotnisku ;-)

Teraz tylko trzeba starć się włączyć z nudą...



Podobne postybeta
Co się dzieje jak Ci zrobią Cancel lotu na lotnisku "startowym"?
Nie lubię Lufthansy
To (kalkulator) żyje :-)
Bad, bad planner (Przemek), no Fluffy for you ;-)
Starzeję się ;-)

piątek, maja 29, 2026

Bad, bad planner (Przemek), no Fluffy for you ;-)

Plan był taki: w sobotę jadę do Gliwic na Fluffy'ego.

Ale później wpadłem na pomysł, że czerwiec to fajny miesiąc, a skoro nigdy nie byłem w Rzymie, to chętnie bym tam poleciał. I jak zamawiałem bilety, dotarło do mnie: „Ej, przecież muszę lecieć w niedzielę, bo w sobotę jest ten Fluffy...”.

Teraz patrzę na grafik i to się po prostu nie spina.

Niby mógłbym nocować w Gliwicach (miałem nawet rezerwację). Fluffy kończy się koło 22:30, więc 20–30 minut i jestem w hotelu. Ale na lotnisko muszę wyjechać najpóźniej koło 14:45. Żeby zrobić to na spokojnie, najzdrowiej byłoby wyjechać z Gliwic już koło 8:00 rano i być w domu koło 10:00.

Niby nic strasznego, ale ja naturalnie chodzę spać koło 2:00–3:00 w nocy, a tutaj musiałbym wstać o 6:30–7:00. Cały ten plan zaczyna więc wyglądać bardzo męcząco. I coraz bardziej skłaniam się ku opcji: no nie pojadę na Fluffy'ego.

Zrobiłem mały test, bo wiem, że łatwo się stresuję w takich sytuacjach. Pierwsza wersja planu zakładała, że jadę już w piątek, w sobotę połażę sobie po Gliwicach (w końcu tam studiowałem), a wrócę w niedzielę. Szybko jednak przypomniałem sobie, że w piątek mam dwa interview, po których muszę napisać dwie (a tak naprawdę trzy) ewaluacje. To oznacza, że pakować musiałbym się już w czwartek.

Uznałem więc: „Dobra, nie jadę w piątek, jadę w sobotę”. Poczułem ulgę, ale stres i poczucie przytłoczenia nadal nie znikały.

W ramach testu sprawdziłem inną myśl: „OK, w ogóle nie jadę na Fluffy'ego”. I nagle całe ciśnienie zeszło.

Trochę mi szkoda, ale znam się na tyle, że wiem, że przez cały czas byłbym poddenerwowany – a w końcu takie imprezy są po to, żeby było fajnie, a nie żeby je po prostu odhaczyć.

Ale żeby nie było: to nie jest mój pierwszy zły plan i pewnie nie ostatni. Np. prawie zawsze, kiedy planuję wyjazd, szukam późnego lotu powrotnego, żeby „wycisnąć” jak najwięcej z ostatniego dnia. Efekt? Dwa ostatnie wyjazdy do Wenecji spędziłem, siedząc na ławkach na Sant'Elena i czekając, aż nadejdzie sensowna godzina, żeby odebrać torbę i ruszyć na lotnisko.



Podobne postybeta
Starzeję się ;-)
Jak Mruka dostał więcej metalowych przedmiotów - (nie)poradnik inwestycyjny z czasów kamienia (czasami łupanego) część druga
Chillout na 80%
Złudne poczucie bezpieczeństwa...
Kurza twarz ;-)

poniedziałek, maja 25, 2026

Miałem farta...

Parę dni temu rzucił mi się w oczy wpis na LinkedIn – albo artykuł gdzieś na Wyborczej czy w podobnym medium. Tekst dotyczył tego, dlaczego pokolenie Gen Z jest bezustannie czymś wystraszone.

Moja pierwsza, automatyczna myśl? "Ech, jacy oni są słabi". Jednak po szybkim przeskanowaniu tekstu wzrokiem wyszło na jaw coś istotnego: ci ludzie od małego byli karmieni wyłącznie narracją o zagrożeniach. Globalne ocieplenie, pandemia, szkodliwe energetyki, a nawet sataniści w Sandmanie...

Najpierw chciałem to zbyć machnięciem ręki, ale nagle uderzyło mnie, że coś w tym jest. Zacząłem porównywać ich realia do mojego własnego dorastania.

Moje wspomnienia zaczynają się pod koniec PRL-u. Byłem wtedy zbyt mały, by rozumieć perturbacje zmian ustrojowych, za to widziałem jedno: w sklepach nagle pojawiły się rzeczy. Pierwsze klocki LEGO dostałem w 1986 roku – rodzice kupowali je za dolary w Peweksie. W 1991 roku te same klocki można było już kupić w zwykłym kiosku Ruchu. Z perspektywy 12- czy 13-latka świat stawał się po prostu lepszy.

Pamiętam, jak w 1992 roku oglądaliśmy otwarcie Olimpiady w Barcelonie. Mój kuzyn nie był zbyt zainteresowany, a ja rzuciłem mu głupią uwagę, że warto oglądać, bo przecież sami nigdy w takie miejsca nie pojedziemy. Do dziś mi głupio na to wspomnienie... Ale w tamtym 1992 roku zagranica była czymś tak odległym, niemal mitycznym. A potem? Potem sam bez problemu odwiedziłem Paryż czy Mediolan.

Zresztą cała moja młodość to była ciągła transformacja na lepsze. Odkryłem literaturę sci-fi: Arthura C. Clarke’a, Isaaca Asimova i innych klasyków. Nie licząc Końca dzieciństwa Clarke’a, wszystkie te książki miały niesamowicie pozytywny vibe. Przekaz był prosty: będzie tylko lepiej, a ludzkość wraz z rozwojem nauki i wiedzy stanie się mądrzejsza.

W międzyczasie mój Commodore 64 zmienił się w PC z procesorem 386 DX. Znów namacalny postęp.

Poszedłem do liceum – postęp. Polska się bogaciła. Poszedłem na studia – to samo. Zacząłem pracę (co zresztą opisuje historia Mruka) i rozwój nadal trwał. Obrazowo mówiąc: po półtora roku pracy zarabiałem ponad trzy razy więcej niż na samym początku. W 2004 roku Polska weszła do Unii Europejskiej (rok wcześniej zaliczyłem swoją pierwszą podróż za granicę), a w 2007 poleciałem już do Stanów.

Właściwie przez całe moje życie, aż do 2008 roku, towarzyszyło mi poczucie stałego rozwoju. Dopiero globalny kryzys finansowy sprawił, że firma, w której pracowałem, zaczęła masowe zwolnienia. Ale nawet wtedy myśleliśmy: "Na szczęście to tylko w Stanach".

Oczywiście, życie prywatne mnie nie oszczędzało. W 2004 roku zmarł mój tata. To było potężne uderzenie, które momentalnie "skończyło moje dzieciństwo". Jednak nawet w tej tragedii z czasem znalazłem pewien rozwojowy punkt zwrotny. Pamiętam, jak po kilku tygodniach dotarło do mnie, że mój tata ogromnie mnie kochał, lubił i na pewno nie chciałby, żebym przez resztę życia chodził załamany. Podniosłem się.

Bo ogólnie wychowałem się w świecie, w którym mogło być tylko lepiej.

Podobnie było z tematem wojny. Jako 4- czy 5-latek w przedszkolu bawiłem się w Czterech pancernych i psa. To było jakieś 37-38 lat po II wojnie światowej, czyli dla nas – prehistoria. Jasne, w latach 90. wybuchła wojna w Jugosławii, ale byłem wtedy zbyt młody, nie miałem w domu MTV i te wszystkie drastyczne przekazy z ostrzeliwanych miast po prostu mi umknęły. Była też Pustynna Burza, ale to była dla nas "wojna zza szyby telewizora". A teraz? Ukraina, Strefa Gazy, Iran... Wszystko podawane na żywo, bez cenzury, prosto na ekrany smartfonów.

Gen Z dostaje przekaz totalnie odwrotny do naszego. Oni zaczynali od punktu "macie dużo", ale na każdym kroku słyszą, że za chwilę zasoby się skończą i będzie tylko mniej, gorzej i trudniej. My rośliśmy w poczuciu otwierających się drzwi; oni dorastają w cieniu nadchodzących katastrof.

Trudno przy moim "wychowaniu" nie być optymistą, tak samo jak trudno się dziwić, że ich konstrukcja psychiczna jest zupełnie inna. Patrząc na to z boku, stwierdzam, że chyba urodziłem się w stosunkowo najlepszym możliwym czasie. Końcówka Gen X, może jeszcze wcześni Milenialsi – my naprawdę mieliśmy w życiu farta.



Podobne postybeta
O urokach uprzęży – czyli o tym, że okiełznana moc LLM-ów jest bardziej użyteczna niż nieokiełznana
Gabinet Ipsalorda
Pierwszy dzień w przyszłości, czyli programista jako dyspozytor Agentów
Zajrzyj w duszę liberała (social-liberała) w sprawie imigracji ;-)
Lutowe książki ;-)

niedziela, maja 24, 2026

Okrucieństwo vibe codingu część 2 ;-)

Zawsze gdy jestem w Juracie na molo zastanawiam się gdzie jest molo w Sopocie, bo niby widać drugi brzeg, ale zawsze jest to, że "o tutaj jest Gdynia, a tam okolice Oliwy, ale gdzie jest Sopot..." i patrzenie na mapę i zawsze pragnąłem takiej wielkiej strzałki nad z napisem "Molo w Sopocie" ;-)

Tak czułem, że mógłbym w komórce mieć coś takiego, daję współrzędne "celu", telefon zna moją lokalizację i niech narysuje strzałkę.

Plan był taki by używając Gemini odpytać o API do kompasu i o wzory, których użyć do przeliczenia tego... ale stwierdziłem, że z głupia frant wpiszę to do Antigravity.
Antigravity dostało prompt:

ok, I would like to have mobile app, idealy simple webpage, which would take geolocation and compass data, and would draw on canvas (or maybe simply rotate?) arrow pointing to the "target", ideally it would have also mechanism to search (by address), or by adding "store current geolocation), and latter I would be able to choose some of those from list and it would show me "where" it is from my current position.... ideally there would be mode of "compass" where it would show multiple of selected targets as "arrows" and descriptions

I drań wyrzucił to....


Działa to w miarę OK, sami możecie spróbować na https://przemelek.github.io/geo/

Zabawne i przerażające jednocześnie (uczucia, które są bardzo blisko siebie jeśli chodzi o reakcje organizmu ;-)) jest to, że jeszcze nie zajrzałem temu do kodu, ale wydaje się to działać.

Sprawdziłem dziś będąc na zewnątrz i działa... w miarę ;-) ale problemem jest bardziej dokładność niż sposób powstania produktu ;-)


Podobne postybeta
AirPods Pro nie lubią się z hulajnogami ;-)
Czy LLMy umieją wnioskować? Test :-)
Automatyczne tłumaczenie 2 - Translatica vs. Google Translate ;-)
Generał Jaruzelski wg. Kuklińskiego
ChatGPT i Gemini (ogólnie LLMy) to są jednak nowe wyszukiwarki

piątek, maja 22, 2026

AI kradnie może (na razie?) nie pracę, ale „wieczorną zabawę w kodowanie” już tak ;-)

Tworząc Boba – mojego asystenta w pracy, który na razie umie rozpoznawać historyjki w Jirze, robić raporty do praw autorskich i czytać maile w poszukiwaniu tych najważniejszych (nadal jest na etapie "uczem siem") – wpadłem na pewien pomysł. Chciałem mieć w Obsidianie folder z szablonami w plikach Markdown.

W pracy (bo w życiu prywatnym na szczęście nie*) muszę często wysyłać maile według powtarzalnego schematu. Podobnie było kiedyś, gdy pisałem narzędzie do analizy danych – struktura kodu prawie zawsze wyglądała tak samo. Idealne miejsce na gotowe szablony. Próbowałem wcześniej z Keyboard Maestro, ale to nie było to.

Mój cel jest prosty: Bob i inne narzędzia mają do minimum skrócić czas, który marnuję na zadania administracyjne. Wszystko po to, bym mógł kodować... albo raczej dyrygować Agentami, bo dranie są już szybsze ode mnie.

Plan był piękny

Chciałem zbudować narzędzie zintegrowane z Alfredem. Wpisuję tmpl , dostaję listę szablonów (pliki Markdown, Java, Python – ogólnie wszystko, co tekstowe), które mogą mieć zmienne pola do wypełnienia, zarówno w nazwie, jak i w treści. Wybieram szablon, dopisuję parametry, wciskam Enter i gotowe – zawartość ląduje w schowku. A jeśli to Markdown, to od razu z formatowaniem.

No i plan upadł...

...bo z głupia frant wrzuciłem ten opis do Antigravity. Drań nie dość, że napisał wszystkie potrzebne skrypty, to jeszcze wypluł gotowego ZIP-a z zawartością całego Workflow do Alfreda.

I jak tu ufać komputerom? Człowiek chce sobie coś pokodzić, a maszyna odbiera całą przyjemność. ;-)

Małe pocieszenie

Na razie system nie ogarnął jeszcze jednego wymagania: chciałbym, aby przy kopiowaniu Markdowna do schowka trafiał on tam jako Rich Text. Outlook, jako flagowy produkt Microsoftu, nie lubi takich "fanaberii" jak czysty Markdown i domaga się sformatowanego tekstu.

Runda pierwsza dla AI, ale walka z Outlookiem wciąż trwa.

* – Ogólnie w życiu prywatnym problemem nie jest nadmiar obowiązków.



Podobne postybeta
Bob wykazuje inicjatywę ;-) i jakże piękny mógłby być Googlebook....
Hacky tool ;-) - workflow do Alfreda, który pozwala wykonywać różne konwersje na zawartości schowka ;-)
Pierwszy dzień w przyszłości, czyli programista jako dyspozytor Agentów
Kopia zapasowa ważna ;-)
Budowanie Boba ;-)

środa, maja 20, 2026

Metallica ;-)

OK, to byłem wczoraj na koncercie Metallica'i w Chorzowie.

Niecałe 2 lata temu byłem też na koncercie z tej trasy, czyli M72 w Warszawie na Narodowym.

Wtedy załapałem się na Snake Pit, tym razem "Trybuny Dolne".

OK, jakoś Rammstein mnie bardziej bawi ;-) Tzn. Metallica'i słuchałem tak z ~20-30 lat temu... miałem nawet wtedy wszystkie płyty (do wtedy) i pożyczyłem je komuś i mi ich nigdy nie oddał [to były CD].

Chociaż nie tyle chodzi o nieznajomość muzyki, ale o to, że "za głośno" to było grane. 18 lat temu był problem z płytą Metallica'i Death Megnetic, gdzie tak podkręcono głośność, że na CD często "leciały" 32767 (czyli największa liczba w 16 bitowej liczbie ze znakiem) co powodowało, że nie było słychać melodii bo wszystko było przesterowane. Stąd wtedy ludzie kupowali płytę do  Guitar Hero III: Legends of Rock / Guitar Hero World Tour bo tam nie było tego przesterowania.
I miałem wrażenie, że tak wyglądał ten koncert.

W Warszawie te 2 lata temu uznałem, że to wina Narodowego, ale to chyba ficzer Metaliki ;-)

Na obu stadionach słyszałem Rammstein i nie miałem wrażenia "ściany dźwięku" ;-)

Żeby sobie wyrównać wartości muzyczne to z Antigravity zrobiłem sobie Playlistę do Spotify z setlistą z tego koncertu. Teraz dopiero słyszę to co "słyszałem" na koncercie.

Ale i tak mi się podobało. 
Fajnie się ludzie cieszyli. Jacyś chyba rodzice (albo dziadkowie) z jakąś nastolatką za mną siedzieli i wg jej słów z Lublina tam przyjechali i słychać było jak piszczała z zachwytu gdy grało coś co jej się podobało ;-)
Obok mnie siedziały mamy, a ich nastoletni synowie rząd wcześniej, obok mam siedziała pani tak ~60-65 lat która też się cieszyła Metallica'ą :-)

Stąd wrażenia pozytywne, jeśli znów przyjadą to też będę chciał jechać ;-)

Dla mnie dodatkowy bonus to Chorzów, mieszkałem tam przez ~10 lat życia (do ~11 roku życia) i mam jednak sentyment, stąd jak zwykle poszedłem na spacer po okolicy i byłem nawet na Bocznej 6 gdzie kiedyś mieszkałem, mam zdjęcie z moją szkołą podstawową nr 38 w Chorzowie ;-) (to ta gdzie składałem przysięgę ucznia, gdzie obiecałem budować naszą socjalistyczną ojczyznę ;-))


Obok przedszkola też szedłem, ale zdjęcia sobie nie robiłem.
Mam zdjęcie gdzie z Amelungu wskazuję "mój blok" ;-)


I tak bardziej z bliska ;-)



A nawet drzewo na które uwielbiałem wchodzić ;-)


Oraz, pierwszy od dawna kiosk (wyglądający jak kiosk Ruchu):


Stąd ja tam ten koncert dobrze będę wspominał ;-)

Jak ktoś też chce tę playlistę, to chyba najprościej zrobić +Create w Spotify, wybrać Playlist, kliknąć na miejsce gdzie będzie lista (ALE NIE NA pole wyszukiwania) i zrobić CTRL-V/Cmd-V z tego poniżej:

spotify:track:4CLRLdxUDPNeO1xCW0U2zC
spotify:track:2dXsILW8gzkosqleHAvl0v
spotify:track:3bxHy4sUXEWjI9kXG1DH5K
spotify:track:4dTwPxntwdUhensj761HIB
spotify:track:6eXWc7irALyENtbAD2TTOT
spotify:track:5lqyqPU3JkpCbUbLmTVQPW
spotify:track:6FUwPb4mGlUDbx42uspXaZ
spotify:track:13Uvqll8OQDjw3wDweIK9y
spotify:track:3quYoE7KgIIaqVXPd7MpX0
spotify:track:6QAsrXPnMSXIbV0yEJHlEX
spotify:track:5ltXoDLlI0rFZAmOXbAp5T
spotify:track:02xhLoVqpGmOqvolgrwM8w
spotify:track:28WmNsclKsrVmdv3tDmoYU
spotify:track:2MuWTIM3b0YEAskbeeFE1i
spotify:track:3DwQ7AH3xGD9h65ezslm6q

Powinno to się zmienić w:
Creeping Death
For Whom the Bell Tolls
Of Wolf and Man
The Memory Remains
Lux Æterna
The Unforgiven
Fuel
The Day That Never Comes
Wherever I May Roam
Nothing Else Matters
Sad but True
One
Seek & Destroy
Master of Puppets
Enter Sandman


Podobne postybeta
Support zawsze lepiej brzmi na koncercie niż na Spotify ;-)
Tydzień z Google Home
Miałem dziś sen, a w nim...
Ostatni Rammstein... przynajmniej w 2024 ;-)
Czerwcowe książki

środa, maja 13, 2026

Bob wykazuje inicjatywę ;-) i jakże piękny mógłby być Googlebook....

Tak jako jeden z side projektów buduję w pracy Boba (mojego asystenta), dziś zaczął czytać moją pocztę firmową... którą próbuje łączyć z ticketami..... w przyszłości ma dostać jeszcze dostęp do stron, które odwiedzam (w pracy) i idealnie do kodu źródłowego i może mojego Obsidiana.

I dziś dość rozsądnie podsunął mi jednego maila do popracowania nad nim... tzn. zrobił to pod koniec dnia, bo wtedy powstała ta część Boba, ale są przesłanki, że to może działać ;-)

Mam jeszcze kilka innych side projektów, ale tylko ich nazwy mogę wyjawić ;-) jeden to HOODIE, drugi to NANCY ;-) coś co już istnieje dostało ode mnie nazwę NED, więc NANCY jest do testowania NEDa ;-)
Jest tam jeszcze drugi BOB, ale z tym nic jeszcze nie robiłem.

Część mnie zaczyna uważać, że model gdzie firma płaci mi za ekstra narzędzia i tokeny w LLMach i naprawdę można by było zmniejszyć zatrudnienie... albo jeszcze lepiej budować więcej :-)

Chociaż przyznam też, że taki model z Agentami może się udać (nie musi, ale może) jeśli w środku jest ktoś kto ogarnia. Mnie się wydaje, że ogarniam, ale któż to wie. 
Bob jest próbą zbudowania czegoś co robi część pracy, która wymaga ode mnie ciągłego skakania po różnych poziomach abstrakcji i różnych problemach i szukania połączeń. 
Nadal tu jestem potrzebny, nawet jeśli Bob będzie robił 100% tego na co mam nadzieję.

Tak przy okazji, Google wczoraj rzuciło hasło Googlebooka....

Wyobrażacie sobie jakby oni to mogli wspaniale zrobić?

W pracy mielibyśmy lokalny model i bezpieczny model "zewnętrzny", RAG czy nawet coś lepszego mogłoby używać całego naszego dysku, maili, confluenców i podobnych jako źródeł wiedzy. 
Dostajemy maila w którym ktoś skarży się, że mu coś nie działa - Agent obok tego maila umieszcza dla nas info, z poprzednich interakcji z ludźmi, z ticketów i tak dalej (Bob to dziś zrobił ;-) klient się poskarżył na coś i Bob wskazał, że ej jest ten ticket... który próbuje rozwiązać podobny problem).
Ktoś prosi o raport z postępów - Agent sprawdza co się dzieje z tą sprawą, jakie były maile o tym, jak z ticketami i tak dalej i proponuje podpowiedź. Którą można w rozmowie z Agentem dookreślić.
A wszystkie prompty jako Markdown files w czymś z interfejsem podobnym do Obsidiana. I moglibyśmy swoje dopisywać.

Jednym z problemów z dzisiejszymi Agentami jest to, że czasem "wyłażą" poza swój obszar, bo usera męczy ciągłe klikanie OK/Run i zgadza się na wszystko... ale gdyby OS to wspierał to Agenty mogłyby działać w modelu bezpieczeństwa podobnym do tego co ma Java... czyli Agent mógłby mieć na poziomie OSa dostęp do wybranego kawałka zasobów... 

Jeszcze do tego dodać rozwinięcie pomysłu na WebIntents, ale tak by OS sam dawał aplikacjom "interfejs" do wołania ich funkcji przez inne aplikacje.

W życiu prywatnym to nie, ale w pracy prawie wszystko ma "ślad elektroniczny" są maile, tickety, kod, strony w confluence, wiadomości w messangerze... dodanie MCP do katalogu ludzi i katalogu projektów i repo i naprawdę dużo biurokratycznej roboty się może robić "samo", człowiek może być na "końcu tego wszystkiego" i dostawać sugestie od systemu (nie, że system sam pisze maile czy tickety, ale proponuje takie działania)

Ach... marzenia....

A jeszcze jakby to wszystko działało na prawdziwym OSie, gdzie można by było uruchamiać aplikacje i Agenty mogłyby używając OSa "dotykać" się z okienkami, czytać tekst (a nie robić OCR)... do tego jakiś ładny UI, coś w stylu Google bierze Linuksa, uładnia go i to jest część tego Googlebooka....


Podobne postybeta
Budowanie Boba ;-)
Pierwszy dzień w przyszłości, czyli programista jako dyspozytor Agentów
AI kradnie może (na razie?) nie pracę, ale „wieczorną zabawę w kodowanie” już tak ;-)
Czy vibecoding zmienia ważność ludzi? Czy PM/PO stają się bardziej niezbędni od inżynierów?
Agent by Agent ;-) czyli o tworzeniu agenta AI agentem AI ;-)