wtorek, września 08, 2026

Ładny lis :-)

Z ładnych rzeczy mam jeszcze lisa, który mnie totalnie ignorował ;-)


Jakoś jednak nie mam serca odganiać. 
Choć ten chyba uznał, że ani go nie chcę zjeść, ani nie chcę mu/jej dać jeść, ani sam się nie dam zjeść ;-)


Podobne postybeta
Zbierając ładne rzeczy ;-)
Obserwacje z prakacji
Różnica między Seniorem i Juniorem ;-)
Budzik zagłady...
Notatki są trudne ;-)

Dalsze ładne rzeczy

W ramach ładnych rzeczy - dziś była ładna pogoda w Juracie :-)

I w piekarni był on.....


No przyznam bez bicia, mam słabość ;-) nie wiem jak się oficjalnie nazywam, ja go nazywam sernikiem marmurkowym i lubię :-)

Próbowałem też w kodzie popełnić dziś "ładne" paskudztwo ;-)

Rozwiązanie zadania "czy 2 odcinki się przecinają"... to jest proste... ale upierdliwe, więc żeby nie robić wyliczania case'ów, że o dx=0 dla pierwszego i tak dalej... 
To poszedłem w coś takiego:

public double[] intersection(double[] startA, double[] endA, double[] startB, double[] endB) {
fixDirection(startA, endA, 0);
fixDirection(startB, endB, 0);
if (startA[0]-endA[0]==0 && startB[0]-endB[0]==0) {
fixDirection(startA, endA, 1);
fixDirection(startB, endB, 1);
}
var axisStart = new double[]{(startA[0]+startB[0])/2,(startA[1]+startB[1])/2};
var axisEnd = new double[]{(endA[0]+endB[0])/2,(endA[1]+endB[1])/2};
var axisMiddle = new double[]{(axisStart[0]+axisEnd[0])/2,(axisStart[1]+axisEnd[1])/2};
translate(startA, axisMiddle, -1);
translate(endA, axisMiddle, -1);
translate(startB, axisMiddle, -1);
translate(endB, axisMiddle, -1);
translate(axisStart, axisMiddle, -1);
translate(axisEnd, axisMiddle, -1);
var base = toPolar(axisEnd);
var polarStartA=toPolar(startA);
var polarEndA=toPolar(endA);
var polarStartB=toPolar(startB);
var polarEndB=toPolar(endB);
rotate(polarStartA, base, -1);
rotate(polarEndA, base, -1);
rotate(polarStartB, base, -1);
rotate(polarEndB, base, -1);
var a = fromPolar(polarStartA);
var b = fromPolar(polarEndA);
var c = fromPolar(polarStartB);
var d = fromPolar(polarEndB);
var solution = solution(a,b,c,d);
solution=toPolar(solution);
rotate(solution,base,1);
solution=fromPolar(solution);
translate(solution,axisMiddle,1);
return solution;
}

private double[] solution(double[] a, double[] b, double[] c, double[] d) {
var _ab1 = coeffs(a,b);
var _ab2 = coeffs(c,d);
var y = (_ab1[0]*_ab2[1]-_ab2[0]*_ab1[1])/(_ab1[0]-_ab2[0]);
var x = (y-_ab1[1])/_ab1[0];
return new double[]{x,y};
}

private double[] coeffs(double[] a, double[] b) {
var dx = b[0]-a[0];
var dy = b[1]-a[1];
// dx is almost guarantee not to be 0 ;-)
var _a = dy/dx;
var _b = a[1]-_a*a[0];
return new double[]{_a,_b};
}

private double[] fromPolar(double[] polar) {
return new double[]{Math.cos(polar[1])*polar[0], Math.sin(polar[1])*polar[0]};
}

private void rotate(double[] polarEndB, double[] base, int dir) {
polarEndB[1]+=base[1]*dir;
}

private double[] toPolar(double[] rect) {
var dx = rect[0];
var dy = rect[1];
var r = Math.sqrt(dx * dx + dy * dy);
var alpha = Math.atan2(dy,dx);
return new double[]{r, alpha};
}

private void translate(double[] startA, double[] axisMiddle, int dir) {
for (var i=0; i<2; i++) {
startA[i]+= axisMiddle[i]* dir;
}
}

private void fixDirection(double[] startA, double[] endA, int dir) {
if (startA[dir]>endA[dir]) {
var tmp = new double[2];
tmp[0]=startA[0];
tmp[1]=startA[1];
startA[0]=endA[0];
startA[1]=endA[1];
endA[0]=tmp[0];
endA[1]=tmp[1];
}
}

To może nie jest ładne, ale szalone ;-)
Więc żeby nie obsługiwać problemu gdy mi się równanie prostej y=a*x+b wykłada bo a by było równe nieskończoności to ja przekręcam układ współrzędnych tak by żaden z odcinków nie robił mi problemów, liczę w tym nowym układzie współrzędnych punkt przecięcia - jeśli jakiś jest, po czym wracam do oryginalnego układu współrzędnych ;p

To wszystko przez to, że ja akurat w programowaniu z wszystkim co jest w 2D mam problemy. Moja wyobraźnia niedomaga w tym obszarze i akurat mogę nie być w stanie sobie "wyliczyć" wszystkich przypadków (ale wyliczyć jako wyenumerować czyli powiedzieć przypadek 1, przypadek 2 i tak dalej)..

To może ładne nie jest, ale ładnie pokręcone ;-)

Ładne było tez dziś niebo.










Podobne postybeta
Plus dla Scala, minus dla Groovy ;-)
Jak szybciej znaleźć mniejszą i większą wartość? [opisowy tytuł, który niewiele mówi ;-)]
Maszyna stanów kontra labirynt ;-)
.asm - to było fajne rozszerzenie plików z programami ;-)
Trick w Java'ie ;-) czyli double brace initialization

poniedziałek, września 07, 2026

Zbierając ładne rzeczy ;-)

Takie moje wyzwanie, tydzień ładnych i dobrych rzeczy ;-)

Więc tak.
Byłem dziś w Jastarni... wczoraj też zresztą.
Po drodze spotkałem dzika - zobaczył mnie, popatrzał i uciekł ;-)
Ale przyznam, że miałem takie "hmm.... a jak na mnie pobiegnie"?

Udało mi się w końcu włączyć Astrophoto w moim Pixelu 8 Pro :-)
Google jakoś pozmieniało rok temu aparat, że nie umiałem robić i dopiero dziś do mnie dotarło jak włączyć ;-) oczywiście "upraszczali" UI i przez to astrofoto z kolejnej opcji po Night Sight stało się opcją w Night Sight...


Choć szczerze nie wiem jak to będzie wyglądać tutaj na blogu ;-)

Spotkałem też lisa. Nie spotkałem za to ślimaków ;-) Ja tu mam sposób na ślimaki, jak jest chodnik, który ślimaki lubią to idę z latarką i pilnuję by nie wdepnąć w ślimaka - to jest proces zwany polowaniem na ślimaki ;-)

Widziałem też spadającą gwiazdę, nawet 2 (a może i 3). Moje standardowe życzenie poszło ;-)
Ale tym razem pierwsza spadająca gwiazda była dość ciekawa, bo aż zostawiła jakby "smugę" przez chwilę. 


Podobne postybeta
Maszyna do życzeń
Przebiegłe ślimaki ;-)
Przyroda...
Motywy
Myślenie = Szybka jazda

czwartek, września 03, 2026

Refleksje z prakacji

OK, to odwalam kolejny tydzień prakacji aka workation z Juraty....
I to jest tak.

Pogoda jest ważna. 
Stąd prakacje w Las Palmas de Gran Canaria - zawsze super, bo zawsze super pogoda, a i nie za drogo.
Wenecja? Spoko, ale jak wypada na lipiec czy sierpień to na zewnątrz jest po ~30 stopni C więc jest problem.
Jurata? A to zależy, jak jest miłe 24 stopnie to jest super... ale taka pogoda w Juracie to jest ewenement, a nie norma... do tego już któryś raz tutaj cierpię na ból zatok.
Gdańsk? Jest OK.

Stąd lekcja na przyszłość - jeśli już gdzieś jechać na prakacje to jednak Las Palmas, albo Gdańsk ;-)

A i tak skrycie tęsknię za biurem z ludźmi, których mogę spotkać twarzą w twarz....

W ogóle mam teraz doła i nie wiem czy to przez to, że mnie bolą zatoki, czy zatoki mnie bolą bo mam doła ;-) nawet ciasto, które czeka w lodówce mnie nie cieszy, bardziej jest taki "no trzeba to zjeść bo się popsuje"....
Ciekawe się to też przekłada na robienie zadanek koderskich - tak człowiek ma takie "a muszę? A ono takie brzydkie" i do tego robi je tak sobie... 


Podobne postybeta
Prakacje męczą ;-)
Maksymalna temperatura operacyjna Przemka
Wenecja ;-) i weneckie kodowanie
Prakacje ;-)
Nie każde miejsce jest idealne na prakacje (aka workation ;-))

środa, września 02, 2026

Dlaczego niektórzy nienawidzą AI, a inni po prostu ją tolerują?

Obserwuję ostatnio, że część ludzi naprawdę nienawidzi LLMów/AI.

Ja siebie zaliczam raczej do entuzjastów, ale takiego niepewnego czy to jest coś co pomoże, odbierze mi/nam pracę czy zawiedzie.

Ale tak się zastanawiałem i w przypadku tych, którzy nienawidzą mam wrażenie, że tu chodzi o "tożsamość", ktoś pisze kod i czuje dumę z tego, że ten kod jest dobry, elegancki, efektywny, ktoś inny pisze tekst i ten tekst jest dobrej jakości, czytelny.

Ktoś patrzy na siebie i identyfikuje się z tym co tworzy i nagle pojawia się coś co całkiem dobrze udaje, ale miewa tak gigantyczne dziury w stylu i jakości, że to aż tych ludzi obraża.

Tzn. ja sobie tak to wyobrażam.

Ja mam inaczej, tak naprawdę lubię pisać kod czy tekst, mam wrażenie że pisanie tekstu jest prostsze. Ale na jakimś tam poziomie to pisanie kodu czy tekstu są dla mnie wtórne. Kod to tylko narzędzie do rozwiązania problemu, do zbudowania czegoś, tekst to tylko jakaś tam forma moich myśli.

Nie identyfikuję się z nimi. Tak, bywam z nich dumny, często się wstydzę ;-) ale to nie jest źródło mojej tożsamości.

Większą dumę odczuwam ze zbudowania czegoś, z jakichś pomysłów architektonicznych, z jakichś idei. 
Kod czy tekst są dla mnie realizacją tych rzeczy, ale mimo wszystko są tylko formą pośrednią.

Przez to wszystko ja widzę w LLMach/AI narzędzie. Które dużo umie, ale jest bardzo nierówne, ale nie czuję jakiegoś obrzydzenia czy sprzeciwu.

Tak, mnie też męczy patrzenie na obrazki generowane przez AI, bo maja "swój styl" ale taki syntetyczny, w tekście który piszą LLMy nie ma osobowości, a kod też jest taki sobie - tu najbardziej mi przeszkadza to, że pisze go obcy i nie zawsze umiem podążać jego "tokiem myślenia".

Nadal, w wielu miejscach to jest to co mi wystarcza. 

I tak część mnie się zastanawia jaki kawałek pracy mi zabiorą LLMy, chociaż aż tak się nie boję o programistów, bo do momentu AGI i PMów którzy wiedzą co chcą zbudować, jesteśmy kryci....



Podobne postybeta
Moja teoria firm IT
O urokach uprzęży – czyli o tym, że okiełznana moc LLM-ów jest bardziej użyteczna niż nieokiełznana
Dwa spostrzeżenia na dziś ;-)
Cyniczne pytanie
Post-samochody ja

piątek, sierpnia 28, 2026

Vibecoding to jak praca z obcym ;-)

Taka obserwacja z pracy z vibe codingiem...

Pracuję w czymś, co de facto jest startupem wewnątrz firmy. Raz widać to bardziej, raz mniej. Ostatnio bardziej. Cała koncepcja nagle się zmieniła i coś, co zbudowałem w ramach zabawy z vibe codingiem jako prototyp (najpierw tworząc historyjki i wstępne szkice), powoli staje się głównym silnikiem docelowego rozwiązania.

Teraz próbuję przenieść część kodu z tego prototypu do lambd. W przyszłości chcę mieć pełną funkcjonalność prototypu, czyli modyfikowanie plików językiem naturalnym, ale na razie potrzebuję prostego, deterministycznego API zmieniającego te pliki według parametrów. Bo to zostało obiecane klientowi.

I tu pojawia się problem z vibe codingiem: ten kod pisał obcy.

Co innego mieć kod w prototypie, co innego wrzucać go do aplikacji obsługującej klientów. Trzeba ten kod przejrzeć, a jest tego od groma. Trzeba dopisać lepsze testy. Claude oczywiście napisał własne testy, ale przed robieniem demka w ramach executive summary chciałem pokazać animację z jedną drogą, zmienić ją toolem i pokazać wynik... Droga złośliwie się nie zmieniała. Choć testy przechodziły, to testowały to, co Claude'owi wydawało się właściwe, a nie to, co faktycznie trzeba było zrobić ;-)

I taka praca męczy, bo więcej czasu spędzam na próbach zrozumienia, co Claude miał na myśli, niż na kodowaniu.

Mam zresztą szerszą obserwację z pola walki i z otoczenia. Claude i podobne narzędzia są świetne do dobrze zdefiniowanej roboty na istniejącym kodzie. Mieliśmy na przykład problem z mapą: były na niej wszystkie klasy dróg, ale system generujący z nich 3D domyślnie operuje na 2-3 najwyższych klasach, a na pozostałych tylko wtedy, gdy się go do tego zmusi (magiczny przełącznik Urban Roads). W efekcie klient widział na mapie drogi, których w 3D nie było. Z Claude'em byłem w stanie to szybko ogarnąć: poczytał o API map, porównał z zapytaniem do serwera i teraz na mapie widać dokładnie te drogi, które trafiają do 3D. Prosto opisane zadanie i zrobione super.

To samo sprawdza się, gdy robi się coś zupełnie nowego od zera. W kilkanaście minut ma się prototyp, który samemu pisałoby się 2-4 tygodnie, i to od razu z ładnym UI.

Problemy zaczynają się, gdy chcesz to ulepszyć, dodać złożone warunki i specyficzną logikę biznesową. Słuchając "Security Now!" i innych podcastów z sieci TWiT, widzę, że to powszechne. Leo Laporte próbuje z Claude'em przepisać swój stary system do faktur i mam wrażenie, że od dwóch miesięcy "prawie skończył". Ma wszystko w ładnym UI, tylko system wciąż nie do końca działa tak, jak powinien ;-)



Podobne postybeta
Zdolny Junior z rozmachem ;-) zwany też jako Claude Code
O wyższości debuggera
Złej (albo leniwej) baletnicy przeszkadza i rąbek u spódnicy
Jak VHDL obalił komunizm
Zauroczył mnie Cladue Code ;-)

wtorek, sierpnia 25, 2026

O szukaniu fok

Pisałem tu już kiedyś o tym, że jak jestem w Juracie to szukam fok.
Spotkałem już nawet 2 w Juracie ;-)

Zasada w szukaniu fok jest banalnie prosta, wszystko co widzę nad morzem na plaży do momentu uznania, że nie jest foką, jest foką ;-)

Ta sama zasada obowiązuje gdy się idzie drogą i uważa się na ślimaki (żeby nie rozdeptać). Do momentu jak nie będzie pewności, że to nie jest ślimak, zakładam że to jednak jest ślimak i go nie deptam ;-)

Ale zasada z fokami jest szersza i nie tylko dotyczy fok ;-)

Jakoś zawsze w tym mieszkaniu i o tej porze dopadają mnie zatoki, a jak mnie bolą zatoki to mam doła, wszystko widzę w ciemnych barwach. 
Mój mózg ciągle "szuka foki", tylko że ta "foka" to same złe rzeczy.

Jak do tego akurat coś się gdzieś dziwnego dzieje to mózgowi który jest smutny łatwiej takie rzeczy znaleźć. 
W sobotę niedaleko miejsca gdzie mieszkam w Krakowie doszło do strasznego wypadku, mój mózg to oczywiście wyłapał i mi się też smutno zrobiło.

Dziś doszło do tego, że musiałem dokonać zakupu antydepresyjnej Mamby (guma rozpuszczalna o smaku pomarańczowym) i Mieszanki Krakowskiej. Dawno nie musiałem sięgać po takie ciężkie narzędzia.

Ale to przez to, że mnie głowa bolała.

Stąd - w przypadku szukania fok, należy się wszędzie spodziewać foki, ale jak człowiekowi smutno to lepiej szukać czegoś innego.



Podobne postybeta
Tam gdzieś jest foka...
Foka :-)
Brak weny
Październik niezbyt książkowy...
Przebiegłe ślimaki ;-)

piątek, sierpnia 21, 2026

Dziwne Pendolino ;-)

Moja podróż dziś była dziwna.

O 9:32 miałem jechać Pendolino do Gdyni ;-)

O tym:



Wsiadłem, zająłem moje miejsce 82 i najpierw było spóźnione 8 minut, 12, 16, 20, 25... 59... i komunikat, że się zepsuło i pojedziemy innym pociągiem ;-)

Po jakichś 90 minutach przyjechał taki:


Taki nie do końca do Pendolino podobny ;-)

Z przedziałami.... jechał sobie będąc spóźnionym, tak trochę przed Warszawą pan konduktor chodził i widząc gdzie jadę stwierdził, to na Warszawie Wschodniej będzie czekać nowy pociąg i tam trzeba wsiąść ;-)

Więc na Wschodniej czekał na nas ten:


Który dowiózł mnie do Gdyni ;-)

Skąd jeszcze inny pociąg wiezie mnie do Juraty ;-)

Z ciekawych rzeczy: w jednym z pociągów spotkałem Juliusza Machulskiego ;-), obejrzałem 4 odcinki Reachera, 1 odcinek Stuarta i 2 albo 3 odcinki The Big Bang Theory.

Teraz miałem zacząć robić zadanka, ale pisanie bloga jest prostsze ;-)



Podobne postybeta
Pociąg pociągowi nierówny ;-)
Styczniowe książki
Nieunikatowe Pendolino
Tajemnica PKP....
No to lecę do Los Angeles ;-)

Journaling w LLM, albo jak małpuję po LLMie ;-)

OK, jak się stresuję to robię ćwiczenie - piszę przez 5 minut.

To jest 5 minutes Journaling. To działa tak, że ponieważ trzeba napisać to co się myśli to idzie to w mózgu przez odpowiednie obszary językowe i się konkretyzuje.
Mnie najłatwiej pisać na "co czuję?", jak jestem zestresowany.

Idea jest taka (i pisałem tu już o tym wiele razy ;-)) by pisać bez zatrzymywania i zastanawiania się, jak coś jest czego nie chcesz napisać to napisz, to jest coś co przed sobą ukrywasz, jakiś lęk czy obawę.

Normalnie to kasuję ;-)

Ale ostatnio daję lokalnemu modelowi, ale z takim u góry "this is my entry from 5 minutes journal, what is my mental condition, mood, any feedback" i dalej wpis...

I to jest ciekawe, bo lokalny model taki jak Gemma4 całkiem rozsądnie analizuje i u mnie dostrzega, że ja zwykle zaczynam pisać od tego co czuję, później robię jakby taki 2 krok, i nazywam te uczucia i próbuję je zrozumieć i jak to są negatywne uczucia to dokonuję zwykle jakiegoś przejęcia kontroli nad nimi i reinterpretacji... chwali mnie za to ;-)

Co ważne dokonuje interpretacji mojego stanu, zwykle utwierdzając mnie w mojej ocenie, ale to jest trochę taka "druga para oczu"

Inna sprawa.... robiąc teraz zadanka koderskie małpuję LLMy... i piszę sobie w Obsidainie często przed napisaniem kodu to co czasem w niektórych modelach widać jak mają "reasoning" czy "thinking" ;-) i to bywa zaskakująco przydatne, bo nawet jakby to komuś mówić to za często można przeskoczyć nad trudnościami i powiedzieć "zapalić odpowiednie bity", ale jak piszesz to jest takie pytanie z tyły głowy "Ty,  które to są odpowiednie" i trzeba to chociaż opisać, nawet bez podania wzoru....
I tak się złapałem, podobnie czasem robię w pracy jak atakuję jakiś nowy problem....

Tak trochę małpuję LLMa ;-)



Podobne postybeta
O urokach uprzęży – czyli o tym, że okiełznana moc LLM-ów jest bardziej użyteczna niż nieokiełznana
Journaling
LLM LLMowi nierówny jeśli chodzi o kod :-)
Logistic Regression wykrywa clickbaity lepiej od Bayesa ;-)
Zauroczył mnie Cladue Code ;-)

wtorek, sierpnia 18, 2026

Kodowanie tylko na bakburcie aka portside ;-)

Wczoraj wracałem z Wenecji i wykorzystałem to, by potrenować trenowanie algorytmów ;-)

Próbowałem robić zadania i szły mi tak sobie. Zamiast jednak wejść w automatyczny wniosek "jaki ja jestem głupi", podszedłem do tego inaczej:

  1. Dlaczego właściwie nie umiem ruszyć tego zadania?

  2. Jak mogę spróbować do niego podejść?

  3. W jaki sposób dojść do stanu, w którym będę w stanie je rozwiązać?

Na lotnisku zadziałała klasyka: przy lekkim stresie i zmęczeniu pomogło dokładne opisanie problemu, zaproponowanie naiwnego/głupiego rozwiązania i szukanie skrajnych przypadków.

W samolocie z Wenecji do Frankfurtu szło jednak znacznie ciężej. Zamiast cisnąć na siłę, zająłem się analizą tego, dlaczego akurat to miejsce mi nie sprzyja (tydzień wcześniej inne było świetne). Po co? Żeby lepiej rozumieć swoje wyzwalacze. Poprzednio miałem 4C (przy przejściu, zaraz za klasą biznes, układ 2+3, czyli tylko jedna osoba obok i korytarz). Tym razem 6F – wprawdzie przy oknie po prawej stronie (sterburta, więc przy podejściach i odlotach widać Wenecję), ale za to z dwiema obcymi osobami po lewej stronie i brakiem przestrzeni.

Żeby złapać spokój w tłoku, testowałem liczenie w dół (np. od 113 co 7). Po 2-3 powtórzeniach próbowałem kodować w głowie. Nie jest to idealne i zabiera czas, ale pozwala opanować rozproszenie.

Same zadania były z operacji bitowych. W drugim klasycznie poszedłem na początku w złym kierunku ;-)

Ciekawsza była jednak obserwacja samego oporu. Zauważyłem mechanizm: gdy zadanie wydaje mi się trudne, natychmiast pojawia się "nie chce mi się". Mając tę świadomość, łatwiej powiedzieć sobie: "właśnie dlatego usiądę i spróbuję". Zadziałało tu podejście z medytacji – samo zauważenie i nazwanie tej niechęci, bez oceniania, w dużej mierze ją rozbraja.

(do formatowania użyłem Gemini ;-))



Podobne postybeta
Zasada numer 1: sprawdzaj oczywiste
Taa.. PostPC... znaczy zamiast PC będziesz nosić ze sobą masę innych rzeczy
Samolotowo/lotniskowe kodowanie... a i tak skończyłem w Wenecji ;-)
Odyseja Czasu - Burza Słoneczna
Co się dzieje jak Ci zrobią Cancel lotu na lotnisku "startowym"?