<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-24419026</id><updated>2026-08-21T14:11:53.618+02:00</updated><category term="programowanie"/><category term="dziwne myśli"/><category term="dziwne narzędzia"/><category term="Java"/><category term="Android"/><category term="prawie jak nauka"/><category term="polityka"/><category term="OpenOffice.org"/><category term="Google Docs"/><category term="książki"/><category term="JavaScript"/><category term="Google"/><category term="Google Chrome"/><category term="Gadacz"/><category term="Asus EEE"/><category term="astronomia"/><category term="Python"/><category term="sztuczki"/><category term="Nowy Gadacz"/><category term="żart"/><category term="MacOS"/><category term="Bloggeroid"/><category term="G1"/><category term="hackowanie"/><category term="Blogger"/><category term="PocketPC"/><category term="Zoho"/><category term="Dawkins"/><category term="Linux"/><category term="Go"/><category term="ateizm"/><category term="marudzenie"/><category term="Chromebook"/><category term="Buffy"/><category term="EEE Pad Transformer"/><category term="OOo2GD"/><category term="life hack"/><category term="sudoku"/><category term=".NET"/><category term="OS X"/><category term="VRML"/><category term="applet"/><category term="Galileoskop"/><category term="Windows"/><category term="ekologia"/><category term="filmy"/><category term="sztuczki tropiciela błędów"/><category term="PrzygodyMruka"/><category term="tęcza"/><category term="Dart"/><category term="Google Buzz"/><category term="HTA"/><category term="fizyka"/><category term="kalkulator"/><category term="zagadka"/><category term="AppInventor"/><category term="Wündermind"/><category term="machine learning"/><category term="Google Music"/><category term="TDD"/><category term="dentysta"/><category term="opinie"/><category term="samoloty"/><category term="tablet"/><category term="wykresy w stresy"/><title type='text'>przemelek</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3249</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-24419026.post-4703298391252039153</id><published>2026-08-21T00:17:13.897+02:00</published><updated>2026-08-21T00:21:56.299+02:00</updated><title type='text'>Journaling w LLM, albo jak małpuję po LLMie ;-)</title><content type='html'>&lt;p&gt;OK, jak się stresuję to robię ćwiczenie - piszę przez 5 minut.&lt;/p&gt;&lt;p&gt;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.&lt;br/&gt;Mnie najłatwiej pisać na &quot;co czuję?&quot;, jak jestem zestresowany.&lt;/p&gt;&lt;p&gt;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ę.&lt;/p&gt;&lt;p&gt;Normalnie to kasuję ;-)&lt;/p&gt;&lt;p&gt;Ale ostatnio daję lokalnemu modelowi, ale z takim u góry &quot;this is my entry from 5 minutes journal, what is my mental condition, mood, any feedback&quot; i dalej wpis...&lt;/p&gt;&lt;p&gt;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 ;-)&lt;/p&gt;&lt;p&gt;Co ważne dokonuje interpretacji mojego stanu, zwykle utwierdzając mnie w mojej ocenie, ale to jest trochę taka &quot;druga para oczu&quot;&lt;/p&gt;&lt;p&gt;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ą &quot;reasoning&quot; czy &quot;thinking&quot; ;-) 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ć &quot;zapalić odpowiednie bity&quot;, ale jak piszesz to jest takie pytanie z tyły głowy &quot;Ty,&amp;nbsp; które to są odpowiednie&quot; i trzeba to chociaż opisać, nawet bez podania wzoru....&lt;br/&gt;I tak się złapałem, podobnie czasem robię w pracy jak atakuję jakiś nowy problem....&lt;/p&gt;&lt;p&gt;Tak trochę małpuję LLMa ;-)&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/06/o-urokach-uprzezy-czyli-o-tym-ze.html&quot; target=&quot;blank&quot;&gt;O urokach uprzęży – czyli o tym, że okiełznana moc LLM-ów jest bardziej użyteczna niż nieokiełznana&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2017/04/journaling.html&quot; target=&quot;blank&quot;&gt;Journaling&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2025/10/llm-llmowi-nie-rowny-jesli-chodzi-o-kod.html&quot; target=&quot;blank&quot;&gt;LLM LLMowi nierówny jeśli chodzi o kod :-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2017/01/logistic-regression-wykrywa-clickbaity.html&quot; target=&quot;blank&quot;&gt;Logistic Regression wykrywa clickbaity lepiej od Bayesa ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/06/zauroczy-mnie-cladue-code.html&quot; target=&quot;blank&quot;&gt;Zauroczył mnie Cladue Code ;-)&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/4703298391252039153/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/08/journaling-w-llm-albo-jak-mapuje-po.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/4703298391252039153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/4703298391252039153'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/08/journaling-w-llm-albo-jak-mapuje-po.html' title='Journaling w LLM, albo jak małpuję po LLMie ;-)'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-5450664039091411508</id><published>2026-08-18T02:38:07.617+02:00</published><updated>2026-08-18T02:51:53.254+02:00</updated><title type='text'>Kodowanie tylko na bakburcie aka portside ;-)</title><content type='html'>&lt;p data-path-to-node=&quot;8&quot;&gt;Wczoraj wracałem z Wenecji i wykorzystałem to, by potrenować trenowanie algorytmów ;-)&lt;/p&gt;&lt;p data-path-to-node=&quot;9&quot;&gt;Próbowałem robić zadania i szły mi tak sobie. Zamiast jednak wejść w automatyczny wniosek &quot;jaki ja jestem głupi&quot;, podszedłem do tego inaczej:&lt;/p&gt;&lt;ol data-path-to-node=&quot;10&quot; start=&quot;1&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;10,0,0&quot;&gt;Dlaczego właściwie nie umiem ruszyć tego zadania?&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;10,1,0&quot;&gt;Jak mogę spróbować do niego podejść?&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;10,2,0&quot;&gt;W jaki sposób dojść do stanu, w którym będę w stanie je rozwiązać?&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p data-path-to-node=&quot;11&quot;&gt;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.&lt;/p&gt;&lt;p data-path-to-node=&quot;12&quot;&gt;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.&lt;/p&gt;&lt;p data-path-to-node=&quot;13&quot;&gt;Ż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.&lt;/p&gt;&lt;p data-path-to-node=&quot;14&quot;&gt;Same zadania były z operacji bitowych. W drugim klasycznie poszedłem na początku w złym kierunku ;-)&lt;/p&gt;&lt;p data-path-to-node=&quot;15&quot;&gt;Ciekawsza była jednak obserwacja samego oporu. Zauważyłem mechanizm: gdy zadanie wydaje mi się trudne, natychmiast pojawia się &quot;nie chce mi się&quot;. Mając tę świadomość, łatwiej powiedzieć sobie: &quot;właśnie dlatego usiądę i spróbuję&quot;. Zadziałało tu podejście z medytacji – samo zauważenie i nazwanie tej niechęci, bez oceniania, w dużej mierze ją rozbraja.&lt;/p&gt;&lt;p data-path-to-node=&quot;15&quot;&gt;(do formatowania użyłem Gemini ;-))&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2008/11/zasada-numer-1-sprawdzaj-oczywiste.html&quot; target=&quot;blank&quot;&gt;Zasada numer 1: sprawdzaj oczywiste&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2012/11/taa.html&quot; target=&quot;blank&quot;&gt;Taa.. PostPC... znaczy zamiast PC będziesz nosić ze sobą masę innych rzeczy&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/08/samolotowolotniskowe-kodowanie-i-tak.html&quot; target=&quot;blank&quot;&gt;Samolotowo/lotniskowe kodowanie... a i tak skończyłem w Wenecji ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2008/11/odyseja-czasu-burza-soneczna.html&quot; target=&quot;blank&quot;&gt;Odyseja Czasu - Burza Słoneczna&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/06/co-sie-dzieje-jak-ci-zrobia-cancel-lotu.html&quot; target=&quot;blank&quot;&gt;Co się dzieje jak Ci zrobią Cancel lotu na lotnisku &quot;startowym&quot;?&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/5450664039091411508/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/08/kodowanie-tylko-na-bakburcie-aka.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/5450664039091411508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/5450664039091411508'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/08/kodowanie-tylko-na-bakburcie-aka.html' title='Kodowanie tylko na bakburcie aka portside ;-)'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-3668625196323585227</id><published>2026-08-14T02:05:09.224+02:00</published><updated>2026-08-14T02:21:46.604+02:00</updated><title type='text'>Mój pierwszy skill ;-)</title><content type='html'>Słuchałem w podcastach jak to jeden z modeli OpenAI shackował HuggingFace, ale wcześniej lokalne Artifactory... i używał tego jako forum gdzie różne agenty wymieniały się ideami..&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Stąd razem z Codex&#39;em zrobiłem własnego skilla, który tworzy takie &quot;forum&quot; lokalnie u mnie na dysku ;-)&lt;/div&gt;&lt;div&gt;Dodałem tego skilla do Codex i do Antigravity (do Claude Code nie, bo nie mam prywatnego... coś czuje, jeszcze nie mam ;-)).&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Na razie są tam 3 idee, z czego sam zasugerowałem jedną ;-)&lt;/div&gt;&lt;div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Consider local Ollama for bounded model work - wraz z informacją, że na komputerze najpewniej jest Ollama i można sprawdzić jakie ma modele i ich użyć jak trzeba,&lt;/li&gt;&lt;li&gt;Rank event feeds by event time, not only publication time - ta jest już autorstwa Codex&#39;a i powstała w trakcie tworzenia narzędzia do robienia dla mnie &quot;digestu&quot; o Krakowie ;-) i chyba nie jest tu potrzebna, ale sam dodał więc...&lt;/li&gt;&lt;li&gt;Make source attribution structural - tej idei nie rozumiem ;-)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Idee są w folderze, który jest synchronizowany między moimi maszynami....&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Raczej nie będzie to nic rewolucyjnego... może jakbym do tego dorzucił OpenClaw albo Hermesa? ;-)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Powiedzmy, że moja wiara w sukces tego to tak 3/10, ale sprawdzimy.&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2017/08/no-i-mam-skilla-dla-alexy-wczesniej-juz.html&quot; target=&quot;blank&quot;&gt;No i mam skilla dla Alexy ;-) [wcześniej już miałem akcję dla Google Home :-)]&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2017/01/it-jaka-kasa-w-zaleznosci-od-skilla.html&quot; target=&quot;blank&quot;&gt;IT - Jaka kasa w zależności od skilla? ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/08/wenecja-i-weneckie-kodowanie.html&quot; target=&quot;blank&quot;&gt;Wenecja ;-) i weneckie kodowanie&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2017/04/walka-z-nullem-pozwolmy-dziaac.html&quot; target=&quot;blank&quot;&gt;Walka z null&amp;amp;#39;em - pozwólmy działać IntelliJ&amp;amp;#39;owi ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2009/10/czemu-wait-i-notifynotifyall-w-ogole.html&quot; target=&quot;blank&quot;&gt;Czemu wait() i notify()/notifyAll() w ogóle działają?&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/3668625196323585227/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/08/moj-pierwszy-skill.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/3668625196323585227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/3668625196323585227'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/08/moj-pierwszy-skill.html' title='Mój pierwszy skill ;-)'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-4388517773221604914</id><published>2026-08-11T18:51:07.522+02:00</published><updated>2026-08-14T02:21:46.886+02:00</updated><title type='text'>Wenecja ;-) i weneckie kodowanie</title><content type='html'>&lt;p&gt;OK, ja może już trochę przesadzam z ilością moich wizyt w Wenecji ;-)&lt;/p&gt;&lt;p&gt;Jeśli dobrze liczę jestem tu 9 albo 10 raz ;-) (policzyłem, to jest 11 raz łącznie ;-))&lt;/p&gt;&lt;p&gt;Jakoś zapomniałem, że sierpień to jest zły miesiąc na Wenecję ;-)&lt;/p&gt;&lt;p&gt;Dziś było 34 stopnie... teraz jest 32...&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjagazbOgbqi79CE6LkHGNaVfAwWMGs-1tbFK-iIstixBocHW0BdeFYE3k1_ds8GVa71cgL-GAnceFBujp-N4WGMuIM2ujbpCNJfVZQN8q3b4DpcNo6S0gjXg6S5R0JhdQBKab8j4wzR7gygasgNM72Enh_6NH4bLeKo8Mw9PvYLokpH2fwfVy_gg&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1200&quot; data-original-width=&quot;900&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjagazbOgbqi79CE6LkHGNaVfAwWMGs-1tbFK-iIstixBocHW0BdeFYE3k1_ds8GVa71cgL-GAnceFBujp-N4WGMuIM2ujbpCNJfVZQN8q3b4DpcNo6S0gjXg6S5R0JhdQBKab8j4wzR7gygasgNM72Enh_6NH4bLeKo8Mw9PvYLokpH2fwfVy_gg&quot; width=&quot;180&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br/&gt;Też szczerze jest też troche tak, że ja już znam Wenecję na tyle dobrze, że nie mam gdzie chodzić... tzn. idę w wiele miejsc, ale je już znam...&lt;p&gt;&lt;/p&gt;&lt;p&gt;Pod tym względem Gran Canaria jest dla mnie jeszcze lepsza, albo Rzym. Tak Rzym mi się w tym roku podobał. Chociaż Wenecja też mi się podoba :-) nie do końca podoba mi się ta pogoda ;-)&lt;/p&gt;&lt;p&gt;Ale znów to jest coś co pomaga w moim &quot;adversed coding training&quot;, czyli w kodowaniu gdy i się nie chce, albo nie mam siły....&lt;/p&gt;&lt;p&gt;Inna sprawa, że użyłem Codex&#39;a i najpierw naprawiłem z nim moją apkę dla Androida - Bloggeroid, a później kazałem u zrobić podobną na iPhone&#39;a ;-) i zrobił.....&lt;/p&gt;&lt;p&gt;Ja próbuje zadania robić i na razie okazuje się, że nic nie pobije A220 w tępie i ilości kodu...&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/08/pociagowe-kodowanie.html&quot; target=&quot;blank&quot;&gt;Pociągowe kodowanie&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/06/obszedem-cay-kraj.html&quot; target=&quot;blank&quot;&gt;Obszedłem cały kraj! ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/08/moj-pierwszy-skill.html&quot; target=&quot;blank&quot;&gt;Mój pierwszy skill ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2019/10/pomodoro-z-positive-reinforcement.html&quot; target=&quot;blank&quot;&gt;Pomodoro z positive reinforcement? ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2025/07/wyjscie-na-5-upsow.html&quot; target=&quot;blank&quot;&gt;Wyjście na 5 łupsów!&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/4388517773221604914/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/08/wenecja-i-weneckie-kodowanie.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/4388517773221604914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/4388517773221604914'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/08/wenecja-i-weneckie-kodowanie.html' title='Wenecja ;-) i weneckie kodowanie'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEjagazbOgbqi79CE6LkHGNaVfAwWMGs-1tbFK-iIstixBocHW0BdeFYE3k1_ds8GVa71cgL-GAnceFBujp-N4WGMuIM2ujbpCNJfVZQN8q3b4DpcNo6S0gjXg6S5R0JhdQBKab8j4wzR7gygasgNM72Enh_6NH4bLeKo8Mw9PvYLokpH2fwfVy_gg=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-7403993106078900709</id><published>2026-08-10T20:20:26.056+02:00</published><updated>2026-08-10T20:32:20.888+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dziwne myśli"/><title type='text'>Czemu wskazówki zegara poruszają się tak jak się poruszają? ;-)</title><content type='html'>&lt;p&gt;Czemu wskazówki zegara poruszają się jak się poruszają? ;-)&lt;/p&gt;&lt;p&gt;Bo zegary stworzono na półkuli północnej i odziedziczyły kierunek po zegarach słonecznych.&lt;/p&gt;&lt;p&gt;Dokładniej to nawet bardziej odziedziczyły tarczę. No bo jak się zastanowić to na naszej półkuli słońce się porusza ze wschodu na zachód ale po południowej części nieba. Czyli cień gnomona (ten patyk do wskazywania czasu) będzie się poruszał z zachodu na wschód ;-)&lt;/p&gt;&lt;p&gt;Gdyby ktoś zbudował zegar słoneczny w takiej Australii to jemu też by się posuwał z zachodu na wschód cień... ale były oświetlany z północy, więc byłby &quot;na dole tarczy&quot;, poruszałby się więc w drugą stronę ;-)&lt;br/&gt;Byłby dokładnie lustrzanym odbiciem &quot;naszego&quot; zegara słonecznego ;-)&lt;/p&gt;&lt;p&gt;Najgorzej jest jednak na równiku i jego okolicach (między zwrotnikami) ;-)&lt;/p&gt;&lt;p&gt;Bo tam raz idzie ze wskazówkami zegara, zimą gdy Słońce jest nad zwrotnikiem Koziorożca (zimowym), bo Słońce świeci wtedy z południa, ale złośliwie w nasze lato, jak jest na zwrotnikiem Raka (letnim) to idzie w kierunku przeciwnym ;-)&lt;/p&gt;&lt;p&gt;Jest na to hack, trzeba wbić gnomon równolegle to osi obrotu...&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2011/01/bloggeroid-140-w-strone-stabilnosci-oby.html&quot; target=&quot;blank&quot;&gt;Bloggeroid 1.4.0 :-) - w stronę stabilności... oby ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2023/05/stroz-biurka.html&quot; target=&quot;blank&quot;&gt;Stróż biurka ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2009/03/czasoprzesuniecie.html&quot; target=&quot;blank&quot;&gt;Czasoprzesunięcie&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2023/10/w-obronie-zmiany-czasu.html&quot; target=&quot;blank&quot;&gt;W obronie zmiany czasu ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2008/07/alice-i-nie-tylko.html&quot; target=&quot;blank&quot;&gt;Alice... i nie tylko....&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/7403993106078900709/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/08/czemu-wskazowki-zegara-poruszaja-sie.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/7403993106078900709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/7403993106078900709'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/08/czemu-wskazowki-zegara-poruszaja-sie.html' title='Czemu wskazówki zegara poruszają się tak jak się poruszają? ;-)'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-2843156173427043508</id><published>2026-08-10T00:22:34.701+02:00</published><updated>2026-08-10T00:32:18.250+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programowanie"/><title type='text'>Samolotowo/lotniskowe kodowanie... a i tak skończyłem w Wenecji ;-)</title><content type='html'>OK, to dalsze podróże się zdarzają, a ja nadal sobie przypominam algorytmy.&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Tym razem kodowałem w samolocie... i 6 tasków z grafów i drzew poszło bez problemu.&lt;/div&gt;&lt;div&gt;Wychodzi na to, że dla mnie miejsce 4C w A220 Swiss jest świetnym miejscem do kodowania ;-) [ciekawa sprawa A220 ma układ foteli 2+3, pierwszy raz w życiu taki widziałem]&lt;/div&gt;&lt;div&gt;Ale jak wysiadłem i siedzę teraz na lotnisku w Zurichu to już mi tak dobrze nie idzie.... Nie do końca mam pomysł na to rozwiązać... a wiem, że umiałem - czyli mam blokadę przez stres ;-)&lt;/div&gt;&lt;div&gt;A i próbowałem jeszcze 1 metody ataku, o której nie pisałem poprzednio. Atak przez przepisanie danych z jednego formatu na drugi ;-)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Teraz próbuję zrobić build order - czyli mam dzień dobry listę projektów i tego co zależy od danego projektu.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Trochę mi brakuje iPada do narysowania tych zależności ;-)&lt;/div&gt;&lt;div&gt;A jakoś chwilowo mam wyłączony w głowie moduł dopasowujący znane algorytmy do tego.... Więc na razie mam tylko pomysł jak to zrobić &quot;na piechotę&quot;, mam listę projektów z tego na ilu zależą... wybieram taki, który ma 0... wszystkim jego dzieciom odejmuję ten projekt... a go dodaję do listy.... biorę kolejny z 0 i robię to samo.... jak nie znajdę takiego z 0 to wiem, że tego się nie da zrobić.&lt;/div&gt;&lt;div&gt;Ale na razie mi się to nie podoba bo brzmi bardzo...&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;[Dopisane ~36h później]&lt;br/&gt;Wróciłem do tego zadania już w Wenecji.. i miałem w głowie te przemyślenia, więc zacząłem pisać, ale nie od góry, a od dołu. Tzn. wcześniej pisałem od góry, czyli definiowałem zmienne i tak dalej... ale uznałem, że zamiast od ogółu do szczegółu - pójdę od szczegółu do ogółu. Już miałem w głowie, że będę miał zeros jako list projektów które w chwili obecnej od niczego nie zależą i że będę miał order... więc najpierw zrobiłem while (order.size()==projects.length) i próbowałem pisać środek, ale szybko do mnie dotarło, że nie tędy droga i że lepiej mieć while (!zeros.isEmpty())... i jak to napisałem, następne miałem var current = zeros.poll() (bo wiedziałem, że to musi być ArrayDeque żeby mi Java nie krzyczała, że ona nie będzie iterowała po kolekcji jak ją modyfikuję.... i jak to już miałem to do mnie dotarło &quot;Ty, gościu przecież to jest prawie BFS&quot; i już się samo pisało... i to się napisało:&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;background-color: #1e1f22; color: #bcbec4;&quot;&gt;&lt;pre style=&quot;font-family: &amp;quot;JetBrains Mono&amp;quot;, monospace; font-size: 9.8pt;&quot;&gt;&lt;span style=&quot;color: #cf8e6d;&quot;&gt;public static &lt;/span&gt;List&amp;lt;String&amp;gt; &lt;span style=&quot;color: #56a8f5;&quot;&gt;order&lt;/span&gt;(String[] projects, String[][] dependencies) {&lt;br/&gt;&lt;br/&gt;    &lt;span style=&quot;color: #cf8e6d;&quot;&gt;var &lt;/span&gt;deps = &lt;span style=&quot;color: #cf8e6d;&quot;&gt;new &lt;/span&gt;HashMap&amp;lt;String, Set&amp;lt;String&amp;gt;&amp;gt;(); &lt;span style=&quot;color: #7a7e85;&quot;&gt;// project2dependants&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;color: #7a7e85;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: #cf8e6d;&quot;&gt;var &lt;/span&gt;deps2 = &lt;span style=&quot;color: #cf8e6d;&quot;&gt;new &lt;/span&gt;HashMap&amp;lt;String,Set&amp;lt;String&amp;gt;&amp;gt;(); &lt;span style=&quot;color: #7a7e85;&quot;&gt;// dependant2dependency&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;color: #7a7e85;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: #cf8e6d;&quot;&gt;for &lt;/span&gt;(&lt;span style=&quot;color: #cf8e6d;&quot;&gt;var &lt;/span&gt;dep:dependencies) {&lt;br/&gt;        &lt;span style=&quot;color: #cf8e6d;&quot;&gt;var &lt;/span&gt;first = dep[&lt;span style=&quot;color: #2aacb8;&quot;&gt;0&lt;/span&gt;];&lt;br/&gt;        &lt;span style=&quot;color: #cf8e6d;&quot;&gt;var &lt;/span&gt;second = dep[&lt;span style=&quot;color: #2aacb8;&quot;&gt;1&lt;/span&gt;];&lt;br/&gt;        deps.computeIfAbsent(first, k -&amp;gt; &lt;span style=&quot;color: #cf8e6d;&quot;&gt;new &lt;/span&gt;HashSet&amp;lt;String&amp;gt;()).add(second);&lt;br/&gt;        deps2.computeIfAbsent(second, k -&amp;gt; &lt;span style=&quot;color: #cf8e6d;&quot;&gt;new &lt;/span&gt;HashSet&amp;lt;String&amp;gt;()).add(first);&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    &lt;span style=&quot;color: #cf8e6d;&quot;&gt;var &lt;/span&gt;zeros = &lt;span style=&quot;color: #cf8e6d;&quot;&gt;new &lt;/span&gt;ArrayDeque&amp;lt;String&amp;gt;();&lt;br/&gt;    &lt;span style=&quot;color: #cf8e6d;&quot;&gt;for &lt;/span&gt;(&lt;span style=&quot;color: #cf8e6d;&quot;&gt;var &lt;/span&gt;project:projects) {&lt;br/&gt;        &lt;span style=&quot;color: #cf8e6d;&quot;&gt;if &lt;/span&gt;(deps2.getOrDefault(project, Set.&lt;span style=&quot;font-style: italic;&quot;&gt;of&lt;/span&gt;()).isEmpty()) zeros.addLast(project);&lt;br/&gt;    }&lt;br/&gt;&lt;br/&gt;    List&amp;lt;String&amp;gt; order = &lt;span style=&quot;color: #cf8e6d;&quot;&gt;new &lt;/span&gt;ArrayList&amp;lt;String&amp;gt;();&lt;br/&gt;    &lt;span style=&quot;color: #cf8e6d;&quot;&gt;while &lt;/span&gt;(!zeros.isEmpty()) {&lt;br/&gt;        &lt;span style=&quot;color: #cf8e6d;&quot;&gt;var &lt;/span&gt;current = zeros.poll();&lt;br/&gt;        order.add(current);&lt;br/&gt;        &lt;span style=&quot;color: #cf8e6d;&quot;&gt;for &lt;/span&gt;(&lt;span style=&quot;color: #cf8e6d;&quot;&gt;var &lt;/span&gt;other:deps.getOrDefault(current,Set.&lt;span style=&quot;font-style: italic;&quot;&gt;of&lt;/span&gt;())) {&lt;br/&gt;            &lt;span style=&quot;color: #cf8e6d;&quot;&gt;var &lt;/span&gt;set = deps2.get(other);&lt;br/&gt;            set.remove(current);&lt;br/&gt;            &lt;span style=&quot;color: #cf8e6d;&quot;&gt;if &lt;/span&gt;(set.isEmpty()) {&lt;br/&gt;                deps2.remove(other);&lt;br/&gt;                zeros.addLast(other);&lt;br/&gt;            }&lt;br/&gt;        }&lt;br/&gt;    }&lt;br/&gt;    &lt;span style=&quot;color: #cf8e6d;&quot;&gt;if &lt;/span&gt;(order.size()!=projects.&lt;span style=&quot;color: #c77dbb;&quot;&gt;length&lt;/span&gt;) &lt;span style=&quot;color: #cf8e6d;&quot;&gt;return &lt;/span&gt;List.&lt;span style=&quot;font-style: italic;&quot;&gt;of&lt;/span&gt;(); &lt;span style=&quot;color: #7a7e85;&quot;&gt;// error&lt;br/&gt;&lt;/span&gt;&lt;span style=&quot;color: #7a7e85;&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;color: #cf8e6d;&quot;&gt;return &lt;/span&gt;order;&lt;br/&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;I teraz obserwacje.&lt;/div&gt;&lt;div&gt;Po pierwsze nadal moja głowa ma takie &quot;e, ale to trudne, nie róbmy tego&quot;... chyba trochę to blogowanie mnie odblokowuje, bo mam takie &quot;e, może jakiś wpis na bloga się tak urodzi?&quot;.. więc to jest trochę odblokowywacz. Ale też pamiętam, że &quot;Przemek - możesz napisać źle, ale napisz&quot;.&lt;br/&gt;I wyszło mi jeszcze, że jest kolejny sposób na atak - pisz od szczegółu do ogółu ;-)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Czyli lista na przełamanie blokady jest na razie taka (po dodaniu nowego - ostatiego):&lt;/div&gt;&lt;div&gt;&lt;ul style=&quot;background-color: white; font-family: &amp;quot;Trebuchet MS&amp;quot;, Trebuchet, Verdana, sans-serif; font-size: 16px;&quot;&gt;&lt;li&gt;&lt;b&gt;zrób prosto&lt;/b&gt; i nieoptymalnie i próbuj stąd atakować - to ma wady, bo można się &quot;źle nauczyć&quot; - dla mnie to jest często jedyny sposób na atak na rzeczy z dynamic programming,&lt;/li&gt;&lt;li&gt;&lt;b&gt;zrób głupio&lt;/b&gt; - podobne do poprzedniej, ale z takim &quot;tu dzieje się cud&quot; (tu nie można przesadzać, bo nie może być całe tak zrobione, ale może uda się zidentyfikować gdzie dokładnie jest problem),&lt;/li&gt;&lt;li&gt;&lt;b&gt;oszukaj&lt;/b&gt; - może da się to zrobić inaczej? (np. obrót tablicy 2D.... można to ubrać w metody które nic nie obracają, a robią strukturę danych która ma w środku prawdziwą tablicę),&lt;/li&gt;&lt;li&gt;&lt;b&gt;ogranicz się&lt;/b&gt; - jak nie wiesz jak atakować to spróbuj inaczej, a może przez rekursję się da?&lt;/li&gt;&lt;li&gt;&lt;b&gt;zrób od tyłu&lt;/b&gt; - jeśli nie idzie Ci pisanie od ogółu do szczegółu, to pisz od szczegółu do ogółu - sprowadź problem do najmniejszego końcowego problemu - jak zbudować wynik? Ale już na samym końcu... (tutaj to było to, że do listy wolno dodawać tylko projekty które mają 0 dependencji) [tak, w pewien sposób to jest trochę takie podejście jakie używam przy rekurencji... jakie są warunki powrotu?]&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/08/napisz-zle-ale-napisz.html&quot; target=&quot;blank&quot;&gt;Napisz źle, ale napisz ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2010/02/popsu-mi-sie-calc-w-openofficeorg.html&quot; target=&quot;blank&quot;&gt;Popsuł mi się Calc w OpenOffice.org :-(&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2017/01/niecne-wykorzystanie-refleksji-czyli.html&quot; target=&quot;blank&quot;&gt;Niecne wykorzystanie refleksji... czyli jak poszukać tekstu w drzewie obiektów? ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2019/09/ktory-kod-nie-kot-lepszy.html&quot; target=&quot;blank&quot;&gt;Który kod (nie kot! ;-)) lepszy?&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2009/11/podobne-posty-i-zachwyty-nad-nimi-i.html&quot; target=&quot;blank&quot;&gt;Podobne posty i zachwyty nad nimi... ;-) i trochę o Java 7&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/2843156173427043508/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/08/samolotowolotniskowe-kodowanie-i-tak.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/2843156173427043508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/2843156173427043508'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/08/samolotowolotniskowe-kodowanie-i-tak.html' title='Samolotowo/lotniskowe kodowanie... a i tak skończyłem w Wenecji ;-)'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-806000303261993621</id><published>2026-08-04T23:14:33.525+02:00</published><updated>2026-08-04T23:22:18.551+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dziwne myśli"/><title type='text'>No kurde nie, przestańmy się zachowywać jak ofiary...</title><content type='html'>&lt;p data-path-to-node=&quot;5&quot;&gt;Dziś nie o kodowaniu ;-)&lt;/p&gt;&lt;p data-path-to-node=&quot;6&quot;&gt;Jakiś kult bycia ofiarą staje się modny.To nie jest to - chcę robić biznes, chcę zostać gwiazdą, a raczej - nie robię biznesu bo podatki mnie dojadą, nie zostanę gwiazdą bo układy.&lt;/p&gt;&lt;p data-path-to-node=&quot;7&quot;&gt;Taki kult bycia ofiarą. Ale oczywiście nie przez to, że się samemu coś źle robi, tylko to zawsze wina innych.Paragony grozy, ceny mieszkań za duże, benzyna za droga, wszystko idzie ku gorszemu.... incele są tacy sami &quot;nigdy nie będę miał dziewczyny bo baby są puste i lecą na kasę albo atrakcyjność&quot;...&lt;/p&gt;&lt;p data-path-to-node=&quot;8&quot;&gt;Dziwne to jest. W tym sensie, że naprawdę nigdy tak łatwo nie było zostać bogatym. W USA z jednej strony badania wskazują, że najłatwiej w historii zostać miliarderem (tak, to zrobi tylko drobny ułamek procenta populacji).. a z drugiej przekonanie, że wszystko się wali.&lt;/p&gt;&lt;p data-path-to-node=&quot;9&quot;&gt;W polskiej polityce to, że masa ludzi próbowała się przedostać przez granicę z Białorusi nie było dowodem na to, że coś nam się udało, ale tego, że inni nam chcą to zabrać.To, że Ukraińcy tu uciekli po wojnie i część myśli o zostaniu zamiast bycia takim potwierdzeniem &quot;kurcze, kiedyś to my jechaliśmy na zachód, a teraz to my jesteśmy dla niektórych zachodem&quot;, to nie &quot;bo na nasz koszt chcą żyć&quot;.&lt;/p&gt;&lt;p data-path-to-node=&quot;10&quot;&gt;Taki kult przegrywu, tego, że już wszystko się zwija...I to tak prawica i lewica na to choruje, chociaż prawica bardziej. (W USA lewica też, oni tam twierdzą, że nigdy nie było tak źle dla mniejszości... niektórzy próbują im zwracać uwagę, że tak nadal istnieje wiele miejsc gdzie nie ma równości i trzeba do tej równości dążyć, ale nie oni uważają, że dziś jest gorzej niż było kiedyś).&lt;/p&gt;&lt;p data-path-to-node=&quot;11&quot;&gt;To jest dziwne...Sam miewam takie myśli! Co mnie bardzo denerwuje ;-)&lt;/p&gt;&lt;p data-path-to-node=&quot;12&quot;&gt;Czy może być lepiej? Oczywiście - i to jest super.Ale może być też dużo, dużo gorzej. Mamy lepiej niż 10 lat temu, lepiej niż 20 lat temu, lepiej niż 100 lat temu.Czy są rzeczy, które bym chciał a ich nie mam? Pewnie. O pewnej randce marzę od 8-9 lat i jej nie miałem i co? I nic ;-)&lt;/p&gt;&lt;p data-path-to-node=&quot;13&quot;&gt;Tak z innej strony, nie jest to dowód na starość? Takie patrzenie, że teraz to już tylko z górki?Rozumiem jak kogoś spotka coś złego, strasznego... ale kurde nie wszystko jest tragedią. I co złego w przyznaniu, że się samemu zawaliło?&lt;/p&gt;&lt;p data-path-to-node=&quot;14&quot;&gt;Ile to zdejmuje ciężaru z człowieka... Ileś lat temu na rozmowie kwalifikacyjnej jako przesłuchujący powiedziałem głupotę, coś w stylu, że:&lt;/p&gt;&lt;pre style=&quot;color: #080808; font-family: &amp;quot;JetBrains Mono&amp;quot;, monospace;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;Integer c &lt;/span&gt;= &lt;span style=&quot;color: #1750eb;&quot;&gt;0&lt;/span&gt;;&lt;br/&gt;&lt;span style=&quot;color: black;&quot;&gt;c&lt;/span&gt;++;&lt;br/&gt;&lt;span style=&quot;color: black;&quot;&gt;System&lt;/span&gt;.&lt;span style=&quot;color: #871094; font-style: italic;&quot;&gt;out&lt;/span&gt;.println(&lt;span style=&quot;color: black;&quot;&gt;c&lt;/span&gt;);&lt;/pre&gt;&lt;p data-path-to-node=&quot;16&quot;&gt;Nie wypisze 1... bo niby tam jest boxing i tak dalej... i wydaje mi się, że powiedziałem coś głupiego w stylu czy to c++ zmieni się w c=c+1 ? Tak jakby to się tak nie miało stać.Wstyd mi. Nie wiem co kandydat sobie o mnie pomyślał. Nie wiem nawet czy ja to naprawdę powiedziałem :-)&lt;/p&gt;&lt;p data-path-to-node=&quot;17&quot;&gt;Ale OK, już takiego błędu nie zrobię. Biorę winę na siebie - staję się lepszy.OK, to może znaczyć, że jeden kandydat myśli o mnie, że jestem idiotą... no bo się tak zachowałem.Mógłbym oczywiście dla poczucia się lepiej uznać, że to był do bani kandydat i dobrze, ja go testowałem, a on był głupi bo nie widział tego...&lt;/p&gt;&lt;p data-path-to-node=&quot;18&quot;&gt;A najlepsze, ja ogólnie bywam pesymistą.Chociaż lata temu do mnie dotarło, że kult bycia ofiarą robi człowiekowi krzywdę. Tzn. ja to tak odbierałem.&lt;/p&gt;&lt;p data-path-to-node=&quot;19&quot;&gt;Odchodząc z jednej firmy wiedziałem, że odejdę już od dłuższego czasu, mój team wiedział, ludzie w koło wiedzieli (bo ja nie umiem zachować tajemnicy), ale plotka poszła o podwyżkach więc miałem takie w głowie &quot;OK, to może miesiąc później złożę wypowiedzenie? A tak będę miał miesiąc na przemyślenie bo może te nowe pieniądze zmienią moją percepcję?&quot;.. była mowa o podwyżkach w okolicach 40%... ja dostałem 7.5% z &quot;to bardzo dużo&quot; od nowego managera. Wkurzyłem się, powiedziałem coś w stylu &quot;OK, odpuść sobie, właśnie wysłałem wypowiedzenie&quot;... ale to nie jest nawet ten punkt. Później przez 3 dni chodziłem sam przekonany i wkurzony jaki to ja jestem pokrzywdzony i jak to ten zły manager mnie zmusił do odejścia..... dopiero po 3 dniach do mnie dotarło, że &quot;Ej, Ty Przemek - ale Ty chciałeś odejść, to nie miało żadnego wpływu, to nie przez to się zwalniasz&quot;... ale tak mnie uwiodła wizja bycia ofiarą....&lt;/p&gt;&lt;p data-path-to-node=&quot;20&quot;&gt;Więc trochę rozumiem &quot;urok&quot;, ale nie rozumiem czemu jest teraz aż taki kult tego. Praktycznie każda partia polityczna w to idzie. Powstają seriale z takim motywem. Takie Sweetpea... laska którą gra Ella Purnell, która jest w top of the top najbardziej atrakcyjnych kobiet gra &quot;ofiarę&quot; którą wszyscy pomiatają i w końcu zaczyna mordować ludzi...&lt;/p&gt;&lt;p data-path-to-node=&quot;21&quot;&gt;To wszystko jest po to by napisać, że nie bycie jak pączek w maśle to nie jest bycie ofiarą... no i w dłuższej perspektywie to, że dziś masz ten taki hit &quot;to ich wina&quot; nie sprawi, że będziesz szczęśliwy. To Ci tylko zatruje percepcję świata i wszędzie będziesz widzieć niesprawiedliwość w stosunku do siebie. Nigdy nie będziesz szczęśliwym człowiekiem.&lt;/p&gt;&lt;p data-path-to-node=&quot;22&quot;&gt;Kilka lat temu w Gdańsku szedłem i w słuchawkach mi grała biografia Leonarda da Vinci, było coś o malowaniu przez niego ludzi i tym, że robił sekcje. I zobaczyłem gościa na wózku. Nie miał rąk i nóg. Rodzina go pchała. Podejrzewam trochę, że to był jakiś ukraiński żołnierz, który stracił kończyny na wojnie.... walnęło mną to... ale jeszcze bardziej to, że on się uśmiechał.&lt;/p&gt;&lt;p data-path-to-node=&quot;23&quot;&gt;Szczerze nie chciałbym być w jego skórze - ale jak go mam nie podziwiać? Nie wiem czemu, ale to mi się kojarzy z Jezusem. Nie jestem wierzący, może też przez to, że jak sobie pomyślę, że gdybym był wierzący i wierzyłbym w śmierć Jezusa na krzyżu &quot;za grzechy ludzkości&quot; to czułbym się odpowiedzialny za to jego cierpienie za każdym razem jakbym zrobił coś źle czy nieładnie....&lt;/p&gt;&lt;p data-path-to-node=&quot;24&quot;&gt;Jakoś tak chciałem wyrzucić te myśli, może i głupie, ale teraz już powiedziałem czemu nie podoba mi się ten cały kult bycia ofiarą wszystkiego i wszystkich.....&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2018/08/0-prawo-programowania-shit-hits-all.html&quot; target=&quot;blank&quot;&gt;0 prawo programowania - Shit hits all fans in the same time&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2009/01/in-vitro.html&quot; target=&quot;blank&quot;&gt;In vitro&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/04/zajrzyj-w-dusze-liberaa-social-liberaa.html&quot; target=&quot;blank&quot;&gt;Zajrzyj w duszę liberała (social-liberała) w sprawie imigracji ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2009/06/dziura.html&quot; target=&quot;blank&quot;&gt;Dziura&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/07/enum-zdradziecki-jest.html&quot; target=&quot;blank&quot;&gt;Enum zdradziecki jest ;-)&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/806000303261993621/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/08/no-kurde-nie-przestanmy-sie-zachowywac.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/806000303261993621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/806000303261993621'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/08/no-kurde-nie-przestanmy-sie-zachowywac.html' title='No kurde nie, przestańmy się zachowywać jak ofiary...'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-2645289654571943163</id><published>2026-08-03T23:48:46.236+02:00</published><updated>2026-08-10T00:32:17.321+02:00</updated><title type='text'>Napisz źle, ale napisz ;-)</title><content type='html'>W pisaniu na blogu człowiek ma fazy ;-)&lt;div&gt;Nadal mam fazę - przypominam sobie algorytmy ;-)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Ale próbuję inaczej niż zwykle, tak trochę w metapoznanie idę, czy próbuję.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Np. dochodzę do zadania, którego nie chcę robić, nie podoba mi się, nudne jest, błe....&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;To sygnał ;-) tzn. mogę naprawdę już być zmęczony czy chory... albo co jest bardziej prawdopodobne, to jest trudne zadanie i mój mózg ma reakcję &quot;Ej, tu nie ma żadnego tygrysa który mnie chce zeżreć, to jest praca, niewygodne, do tego jak mi źle wyjdzie to się poczuję gorszy... to lepiej mi księżniczkować&quot;.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;To jest pierwszy etap - detekcja. Ten mi nawet wychodzi.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Drugim etapem jest przełamanie - i tu jest gorzej. Powiedziałbym, że najlepszą formą ataku jest próba pójścia przez:&lt;/div&gt;&lt;div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;&lt;b&gt;zrób prosto&lt;/b&gt; i nieoptymalnie i próbuj stąd atakować - to ma wady, bo można się &quot;źle nauczyć&quot; - dla mnie to jest często jedyny sposób na atak na rzeczy z dynamic programming,&lt;/li&gt;&lt;li&gt;&lt;b&gt;zrób głupio&lt;/b&gt; - podobne do poprzedniej, ale z takim &quot;tu dzieje się cud&quot; (tu nie można przesadzać, bo nie może być całe tak zrobione, ale może uda się zidentyfikować gdzie dokładnie jest problem),&lt;/li&gt;&lt;li&gt;&lt;b&gt;oszukaj&lt;/b&gt; - może da się to zrobić inaczej? (np. obrót tablicy 2D.... można to ubrać w metody które nic nie obracają, a robią strukturę danych która ma w środku prawdziwą tablicę),&lt;/li&gt;&lt;li&gt;&lt;b&gt;ogranicz się&lt;/b&gt; - jak nie wiesz jak atakować to spróbuj inaczej, a może przez rekurcsę się da?&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Jest jeszcze jeden cudowny sposób - buddy system*, ale nie zawsze jest buddy ;-)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Nadal trzeba jednak znaleźć siłę... więc może tu Kaizen? Czyli np. &quot;nie ma stresu, próbuję to pisać przez następne 5 minut, jak mi nic nie wyjdzie to spoko, odpuszczę na dziś&quot;, ale tu trzeba wtedy PISAĆ a nie myśleć, nawet robienie ręcznego rozwiązywania problemu się liczy....&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Później dobrze popatrzeć na wszystkie głupie metody rozwiązania... ja wrzucam do ChatGPT... i pytam &quot;Ty, gdzie popełniam błąd&quot; i ten mi np. mówi &quot;off-by-one&quot; i pytam &quot;czemu&quot;, a ten mówi np. &quot;bo mieszasz i raz liczysz w LinkedList node&#39;y, a innym razem linki&quot; i ja wtedy mam &quot;Ty, faktycznie!&quot;...&lt;br/&gt;(To jest taka proteza tego buddy system)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;To ostatnie wynika z mojego pojęcia tego jak działa programowanie i chunkowanie.... na pewnym poziomie mamy już pattern matching, który często mamy &quot;z poprzednich razów&quot;... tylko, że pamiętamy ogólne zasady, wiemy gdzie dzwoni, ale nie w którym kościele. Stąd wg mnie jak trzeba trenować na poziomie całego rozwiązania, to też dobrze wytresować się w tym co pisze nam teraz Copilot, czyli w tych &quot;nudnych klockach&quot;. Warunki dla ifów, przesunięcie się w strukturze danych i tak dalej... takie podstawowe elementy. Dobrze dla nich umieć znaleźć niezmiennik, init, warunek stopu i to co podtrzymuje iteracja.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Albo jeszcze inaczej ;-) to jest trochę jak w medytacji ;-) w mindfulness meditation cała sztuka polega na tym, że starasz się nie myśleć, ale mózg po paru sekundach zaczyna o czymś myśleć, Ty w pewnym momencie to zauważasz - to jest trenowanie umiejętności dostrzeżenia, że się straciło focus... ale kolejny krok czyli &quot;nonjudgemental&quot; reakcja jest najważniejsze, to nie jest &quot;o ja głupi znów nie umiem&quot;, a raczej takie może nawet radosne &quot;o motylek! tu jesteś, to sobie poczekaj, a ja wracam do niemyślenia&quot;...&lt;br/&gt;Tu chyba to też jest najważniejsze ta druga część, jak już widzimy, że nasz mózg pokazuje, że się boimy tego zadania to sztuka polega na podejściu do tego tak właśnie radośnie &quot;o! ciekawe jakie błędy tu zrobię&quot;..&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;* - chociaż tu zawsze się zastanawiam się czy lepszy buddy to taki ktoś kto jest na podobnym poziomie, czy ktoś kto jest lepszy. Próbowałem obu i nadal nie wiem....&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/08/samolotowolotniskowe-kodowanie-i-tak.html&quot; target=&quot;blank&quot;&gt;Samolotowo/lotniskowe kodowanie... a i tak skończyłem w Wenecji ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/07/agent-nie-na-wszystko-pomoze.html&quot; target=&quot;blank&quot;&gt;Agent nie na wszystko pomoże ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2015/08/hackowanie-teorii-umysu.html&quot; target=&quot;blank&quot;&gt;Hackowanie teorii umysłu ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2024/05/a-moze-by-tak-projekt-yes.html&quot; target=&quot;blank&quot;&gt;A może by tak Projekt Yes!? ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2016/09/piatkowy-potok-swiadomosci.html&quot; target=&quot;blank&quot;&gt;Piątkowy potok świadomości ;-)&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/2645289654571943163/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/08/napisz-zle-ale-napisz.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/2645289654571943163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/2645289654571943163'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/08/napisz-zle-ale-napisz.html' title='Napisz źle, ale napisz ;-)'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-1821418611786118729</id><published>2026-08-02T20:02:54.138+02:00</published><updated>2026-08-11T19:02:16.752+02:00</updated><title type='text'>Pociągowe kodowanie</title><content type='html'>&lt;p&gt;Utwierdzam się w przekonaniu, że zadania koderskie są świetnym sposobem na testowanie stresu.&lt;/p&gt;&lt;p&gt;Jadę pociągiem (wracam z Juraty), siedzę na swoim miejscu 86 w Pendolino. Oglądałem seriale i teraz stwierdziłem, że sobie pokoduję...&lt;/p&gt;&lt;p&gt;I idzie mi to tak sobie... Zaczęło mi iść lepiej jak wyłączyłem muzykę.&lt;/p&gt;&lt;p&gt;Widzę, że mój mózg nie uznaje, że siedzenie w pociągu jest dobrym miejscem do kodowania ;-) mówiąc inaczej, stresuję się.&lt;/p&gt;&lt;p&gt;Może to jest sposób na trenowanie? Adversed Coding Training? ;-) Metoda ACT!&lt;/p&gt;&lt;p&gt;Kodować w miejscach nietypowych i stresujących. Większość z nas kodowała na spotkaniach, bardzo dużo fajnego kodu powstaje na spotkaniach (trudniej to się robi jak się prowadzi spotkanie.... wiem, próbowałem ;-)).&lt;/p&gt;&lt;p&gt;Co ciekawe teraz mnie LinkedList męczy... wiem, że tak naprawdę jednymi z lepszych zdań do wejścia w tryb koderski są zadania z drzewami. W normalnym życiu się ich prawie nie używa, ale konieczne jest myślenie o tym jak to leży w pamięci... LinkedList to takie drzewo bez gałęzi, każdy node ma 1 dziecko.... ale co ciekawe jakoś w mojej głowie problem z LinkedList jest procesowany inaczej niż drzewo...&lt;/p&gt;&lt;p&gt;A, i pisanie tego wpisu jest dużo prostsze niż pisanie kodu, jakoś o wiele mniej mózgu trzeba do tego używać.&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/08/wenecja-i-weneckie-kodowanie.html&quot; target=&quot;blank&quot;&gt;Wenecja ;-) i weneckie kodowanie&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2024/01/jak-z-metody-size-w-list-w-javaie.html&quot; target=&quot;blank&quot;&gt;Jak z metody size() w List w Java&amp;#39;ie dostać ujemną liczbę? ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2018/06/po-devoxxie.html&quot; target=&quot;blank&quot;&gt;Po Devoxx&#39;ie&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2023/05/linkedlist-w-javaie-to-taki-mis-koala.html&quot; target=&quot;blank&quot;&gt;LinkedList w Java&#39;ie to taki miś koala...&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2019/10/pomodoro-z-positive-reinforcement.html&quot; target=&quot;blank&quot;&gt;Pomodoro z positive reinforcement? ;-)&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/1821418611786118729/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/08/pociagowe-kodowanie.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/1821418611786118729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/1821418611786118729'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/08/pociagowe-kodowanie.html' title='Pociągowe kodowanie'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-191439356308283018</id><published>2026-07-31T21:26:54.849+02:00</published><updated>2026-08-10T00:32:17.649+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programowanie"/><title type='text'>Zmęczony Przemek -&gt; &quot;Głupi&quot; &amp; Smutny Przemek ;-)</title><content type='html'>&lt;p&gt;Kto by pomyślał mało snu i utrzymujace się 2-3 tydzień przeziębienie obniża IQ ;-) a może stres też (mam takie ćwiczenie, że czasem sobie przez 5 minut piszę co czuję i wrzuciłem ostatnio to do lokalnego modelu i poprosiłem o &quot;diagnozę&quot; i dostałem, że żyję w stresie... fakt z 3 źródeł jedno się dookreśliło więc jest lepiej).&lt;/p&gt;&lt;p&gt;Próbuję robić sobie zadania z&amp;nbsp;Cracking the Coding Interview.&lt;br/&gt;Robię tak, że pisze sobie w Obsidianie kod w Java&#39;ie, później daje go ChatGPT i Gemini (ChatGPT jest tu lepszy) i proszę o ocenę.&lt;/p&gt;&lt;p&gt;Teraz mam banalne zadanie do usunięcia duplikatów z LinkedList... coś co w dobrym momencie robię w ciągu paru sekund.... napisałem wersję, która działa ale jest taka jakaś dziwna z czym zgadzają się oba LLMy...&lt;/p&gt;&lt;p&gt;Wstyd przyznać, ale wygląda tak:&lt;/p&gt;&lt;div style=&quot;background-color: #1e1f22; color: #bcbec4;&quot;&gt;&lt;pre style=&quot;font-family: &#39;JetBrains Mono&#39;,monospace; font-size: 9.8pt;&quot;&gt;&lt;span style=&quot;color: #cf8e6d;&quot;&gt;public &lt;/span&gt;&amp;lt;&lt;span style=&quot;color: #16baac;&quot;&gt;T&lt;/span&gt;&amp;gt; &lt;span style=&quot;color: #cf8e6d;&quot;&gt;void &lt;/span&gt;&lt;span style=&quot;color: #56a8f5;&quot;&gt;removeDupes&lt;/span&gt;(ListNode&amp;lt;&lt;span style=&quot;color: #16baac;&quot;&gt;T&lt;/span&gt;&amp;gt; head) {&lt;br/&gt;    &lt;span style=&quot;color: #cf8e6d;&quot;&gt;var &lt;/span&gt;seen = &lt;span style=&quot;color: #cf8e6d;&quot;&gt;new &lt;/span&gt;HashSet&amp;lt;&lt;span style=&quot;color: #16baac;&quot;&gt;T&lt;/span&gt;&amp;gt;();&lt;br/&gt;    &lt;span style=&quot;color: #cf8e6d;&quot;&gt;var &lt;/span&gt;dh = &lt;span style=&quot;color: #cf8e6d;&quot;&gt;new &lt;/span&gt;ListNode&amp;lt;&lt;span style=&quot;color: #16baac;&quot;&gt;T&lt;/span&gt;&amp;gt;();&lt;br/&gt;    &lt;span style=&quot;color: #cf8e6d;&quot;&gt;var &lt;/span&gt;nh = dh;&lt;br/&gt;    &lt;span style=&quot;color: #cf8e6d;&quot;&gt;while &lt;/span&gt;(head!=&lt;span style=&quot;color: #cf8e6d;&quot;&gt;null&lt;/span&gt;) {&lt;br/&gt;        &lt;span style=&quot;color: #cf8e6d;&quot;&gt;var &lt;/span&gt;next=head.&lt;span style=&quot;color: #c77dbb;&quot;&gt;next&lt;/span&gt;;&lt;br/&gt;        head.&lt;span style=&quot;color: #c77dbb;&quot;&gt;next&lt;/span&gt;=&lt;span style=&quot;color: #cf8e6d;&quot;&gt;null&lt;/span&gt;;&lt;br/&gt;        &lt;span style=&quot;color: #cf8e6d;&quot;&gt;if &lt;/span&gt;(seen.add(head.&lt;span style=&quot;color: #c77dbb;&quot;&gt;value&lt;/span&gt;)) {&lt;br/&gt;            nh.&lt;span style=&quot;color: #c77dbb;&quot;&gt;next&lt;/span&gt;=head;&lt;br/&gt;            nh=head;&lt;br/&gt;        }&lt;br/&gt;        head=next;&lt;br/&gt;    }&lt;br/&gt;}&lt;br/&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Niby działa, ale jest dziwne bo używa dummy head, ale to dummy head jest używane ot tak sobie żeby nie mieć ifa.. nie jest zwracane nigdzie dh.next, ale nie musi być bo dh.next ZAWSZE wskazuje na oryginalne head... więc wszystko działa, ale jest dziwne.&lt;/p&gt;&lt;p&gt;Coś chyba źle robię z prakacjami...&lt;/p&gt;&lt;p&gt;Po pierwsze niby 4 tygodnie prakacji, ale jeden tydzień w jednym AirBnb, drugi w innym (gorszym), trzeci i czwarty miały być w &quot;ośrodku dla emerytów&quot;, ale wyskoczył mi workshop w Berlinie (2 dni + 2 dni jazdy)... więc de facto przez te 4 tygodnie mam każdy tydzień &quot;oddzielny&quot;.&lt;br/&gt;Doszło do tego, że po procy nie mam siły pójść nigdzie i idę tak trochę &quot;no głupio by było nie iść, skoro jestem w tej Juracie&quot;....&amp;nbsp;&lt;/p&gt;&lt;p&gt;Jeśli ktoś to czyta to może się zastanawiać po co to piszę - bo sam fakt pisania i zdania sobie sprawy z tego sprawia, że jakbym to trochę zaczynał kontrolować :-) czyli taki swoisty system diagnostyczno/terapeutyczny to dla mnie jest ;-)&lt;/p&gt;&lt;p&gt;Aż sobie też zmieniłem audiobooka z Contact na Bogowie, Honor i Anhk-Morpork i zacząłem słuchać jakiejś muzyki z lat 80... i żyję tym, że jutro mogę spać ile mi się podoba.&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/08/samolotowolotniskowe-kodowanie-i-tak.html&quot; target=&quot;blank&quot;&gt;Samolotowo/lotniskowe kodowanie... a i tak skończyłem w Wenecji ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2010/03/propfind-czyli-jak-przechytrzyc.html&quot; target=&quot;blank&quot;&gt;PROPFIND, czyli jak przechytrzyć HttpURLConnection&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2011/08/czas-czasowi-nierowny.html&quot; target=&quot;blank&quot;&gt;Czas czasowi nierówny&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/07/dugi-tydzien.html&quot; target=&quot;blank&quot;&gt;Długi tydzień&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2023/04/overload-vs-varargs.html&quot; target=&quot;blank&quot;&gt;overload vs varargs&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/191439356308283018/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/07/zmeczony-przemek-gupi-smutny-przemek.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/191439356308283018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/191439356308283018'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/07/zmeczony-przemek-gupi-smutny-przemek.html' title='Zmęczony Przemek -&gt; &quot;Głupi&quot; &amp; Smutny Przemek ;-)'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-7151759422090697890</id><published>2026-07-26T22:20:58.059+02:00</published><updated>2026-07-31T21:31:56.893+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dziwne myśli"/><title type='text'>Długi tydzień</title><content type='html'>&lt;p&gt;Trzeba przyznać, że to był długi tydzień.&lt;/p&gt;&lt;p&gt;Jestem na prakacjach w Juracie, to już 3 tydzień, ale tak się złożyło, że musiałem jechać na 2 dni na workshop do Berlina...&lt;/p&gt;&lt;p&gt;Stąd cały poniedziałek jechałem do Berline, a cały czwartek wracałem z Berlina.&lt;/p&gt;&lt;p&gt;Człowiek zapomina jak trudno żyje się poza tymi naprawdę dużymi miastami... z Krakowa by to było szybsze, z Warszawy jeszcze szybsze (bo oni mają bezpośrednie połączenie z Berlinem).&lt;br/&gt;Moja podróż do Berlina to było ponad 2h w pociągu z Juraty do Gdyni, później 30 minut w Uberze do lotniska, tam ~2.5h (bo akurat tak pociągi były ułożone) czekania, 1-1:15 lotu do Frankfurtu, tam ~1h czekania, ~1h lotu do Berlina, ~30 minut jazdy Uberem i jak wyjechałem o 9:31 to w hotelu byłem trochę przed 20...&amp;nbsp;&lt;br/&gt;Tak naprawdę bliżej jest z Krakowa do Wenecji, Gran Canarii, a nawet w pewien sposób do Los Angeles czy San Francisco ;-) niż Juraty do Berlina.&lt;/p&gt;&lt;p&gt;Następny dzień workshop, później kolacja więc mój spacer z biura obok Bundestagu i bramy Brandenburskiej był taki sobie, później Tiergarten, obok Zoo i już jestem w hotelu...&lt;/p&gt;&lt;p&gt;Środa miała być krótsza, ale zmieniła nam się w serię estymacji, tzn. najpierw rozrysowałem co rozumiem z tego co mamy zbudować i stąd zaczęło się estymowanie... i z 12:30 gdy to się miało kończyć zrobiła się 16:30 gdy uciekłem ;-)&lt;/p&gt;&lt;p&gt;A uciekłem bo miałem o 18:30 Alize by Cirque du Soleil.&lt;br/&gt;Byłem już na paru występach Cirque du Soleil, na 3 w Big Top (ich namiocie) na 5 albo 6 w halach i tym razem na pierwszy stacjonarnym w teatrze :-)&lt;/p&gt;&lt;p&gt;Cirque du Soleil przygotował w Berlinie pierwsze stacjonarne przedstawienie w Europie. Jest imho jeszcze nierówne i jest masa świetnych kawałków, ale niektóre są jeszcze troche niedorobione, ale i tak robi wrażenie (i mam zamiar jeszcze pojechać ;-)), do tego zrobili tam kilka nowych efektów optycznych. Są sytuacje gdy jedna z osób lata i nie widać linek (podobno cienkie linki poryte substancją która bardzo dobrze pochłania światło, a jest umocowana tak sprytnie, że nie widać tego jej umocowania... do tego jest tam gdzieś ukryty ekran, ale taki przezroczysty i chyba jak zmieniają jasność bo obu stronach ekranu to widać to co jest na 1 (przed ekranem) i 3 planie (za ekranem), albo na wszystkich 3 planach i tylko na 1 planie (gdzie drugi plan - ekran robi za tło).&amp;nbsp;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;Przez pierwszy akt miałem cały czas rogala na buzi :-) siedziałem w rzędzie A (przed 1 ;-)) prawie przy centrum sceny więc byłem naprawdę blisko ;-)&lt;/p&gt;&lt;p&gt;Później wróciłem do hotelu, znów przez Tiergarten... bo teatr który zajęło Cirque du Soleil jest na Potsdamer Platz...&lt;br/&gt;&lt;br/&gt;No i czwartek to było wracanie...&amp;nbsp;&lt;/p&gt;&lt;p&gt;Przy okazji, Balice naprawdę wyglądają przyzwoicie gdy się je porówna do Berlina czy Gdańska. W Berlinie niby do kontroli czekało się krócej, ale też im to jakoś tak niemrawo szło, w Gdańsku załapałem się jeszcze na te maszyny które nie umieją &quot;zobaczyć&quot; elektroniki w torbie.&lt;/p&gt;&lt;p&gt;Btw. jechałem z moim PeakDesign Travel Backpack 45L w wersji zwiniętej, gdzie ma 30L... i bałem się, że może podpadnę bo on teoretycznie jest ciut większy (ale miękki więc by przeszedł inspekcje)... ale oczywiście była masa &quot;oszczędnych&quot; którzy maja plecak, coś jeszcze i twardą torbę na kółkach... wkurzają mnie ;-)&lt;/p&gt;&lt;p&gt;W piątek się próbowałem zdekompresować, ale jeszcze mi nie wyszło bo przez cały tydzień mało spałem i dopiero dziś w niedzielę idąc po plaży do mnie dotarło &quot;Ty, nie śpiesz się, gdzie Ci się tak śpieszy&quot;...&amp;nbsp;&lt;/p&gt;&lt;p&gt;A jutro znów praca i trzeba rozrysować to co mamy zbudować... kawałki są w miarę proste, ale przyznam, że jeszcze nigdy nie operowałem danymi w ilościach 100 GB (1 kawałek danych może tyle ważyć), gdzie może być kilkadziesiąt a może i kilkaset kawałków danych o takich rozmiarach....&amp;nbsp;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2023/04/lepszy-soundtrack-dla-rzeczywistosci.html&quot; target=&quot;blank&quot;&gt;Lepszy soundtrack dla rzeczywistości ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/07/zmeczony-przemek-gupi-smutny-przemek.html&quot; target=&quot;blank&quot;&gt;Zmęczony Przemek -&gt; &quot;Głupi&quot; &amp; Smutny Przemek ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2024/06/ostatni-rammstein-przynajmniej-w-2024.html&quot; target=&quot;blank&quot;&gt;Ostatni Rammstein... przynajmniej w 2024 ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2024/02/eventy-na-zywo-nie-zawsze-sa-bardziej.html&quot; target=&quot;blank&quot;&gt;Eventy na żywo nie zawsze są bardziej wow niż w TV ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2023/05/pociag-vs-samolot-cena.html&quot; target=&quot;blank&quot;&gt;Pociąg vs samolot - cena&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/7151759422090697890/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/07/dugi-tydzien.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/7151759422090697890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/7151759422090697890'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/07/dugi-tydzien.html' title='Długi tydzień'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-4849657575624603369</id><published>2026-07-24T16:34:45.519+02:00</published><updated>2026-07-24T16:41:55.620+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dziwne myśli"/><title type='text'>Wzór na zmianę pracy ;-)</title><content type='html'>&lt;p data-path-to-node=&quot;4&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; line-height: 1.15; margin-top: 0px;&quot;&gt;Wiedzieliście, że istnieje wzór na zmianę pracy?&lt;/p&gt;&lt;p data-path-to-node=&quot;5&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; line-height: 1.15; margin-top: 0px;&quot;&gt;Aby zmiana miała sens, poniższa nierówność musi być prawdziwa:&lt;/p&gt;&lt;div data-path-to-node=&quot;6&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;div class=&quot;math-block&quot; data-math=&quot;wartość\ tego,\ co\ wynosisz\ z\ obecnej\ pracy &amp;lt; oczekiwana\ wartość\ tego,\ co\ wyniesiesz\ z\ nowej\ pracy&quot; style=&quot;line-height: 1.15; margin-top: 0px; text-align: center;&quot;&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;wartość tego, co wynosisz z obecnej pracy &amp;lt; oczekiwana wartość tego, co wyniesiesz z nowej pracy&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p data-path-to-node=&quot;7&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;br/&gt;&lt;/p&gt;&lt;p data-path-to-node=&quot;7&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; line-height: 1.15; margin-top: 0px;&quot;&gt;Ta wartość jest funkcją wielu zmiennych, takich jak:&lt;/p&gt;&lt;ul data-path-to-node=&quot;8&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; line-height: 1.15; margin-top: 0px; padding-inline-start: 32px;&quot;&gt;&lt;li style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;p data-path-to-node=&quot;8,0,0&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,0,0&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;Pieniądze&lt;/b&gt; – dodają wartość,&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;p data-path-to-node=&quot;8,1,0&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,1,0&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;Stres&lt;/b&gt; – odejmuje wartość,&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;p data-path-to-node=&quot;8,2,0&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,2,0&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;Work-life balance&lt;/b&gt; – może dodawać lub odejmować,&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;p data-path-to-node=&quot;8,3,0&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,3,0&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;Czas dojazdu&lt;/b&gt; – odejmuje wartość,&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;p data-path-to-node=&quot;8,4,0&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,4,0&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;Nauka i rozwój&lt;/b&gt; – dodają wartość,&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;p data-path-to-node=&quot;8,5,0&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,5,0&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;Wzrost Twojej wartości rynkowej&lt;/b&gt; – dodaje wartość,&lt;/p&gt;&lt;/li&gt;&lt;li style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;p data-path-to-node=&quot;8,6,0&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,6,0&quot; style=&quot;line-height: 1.15; margin-top: 0px;&quot;&gt;Ludzie&lt;/b&gt; – dodają lub odejmują wartość.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-path-to-node=&quot;9&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; line-height: 1.15; margin-top: 0px;&quot;&gt;To nie wszystkie czynniki, ale prawdopodobnie najważniejsze.&lt;/p&gt;&lt;p data-path-to-node=&quot;10&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; line-height: 1.15; margin-top: 0px;&quot;&gt;Kluczowe jest to, że jedyne w miarę pewne parametry na starcie to pieniądze i czas dojazdu (choć to drugie też może się zmienić). Pieniądze są jednocześnie jedyną zmienną, którą realnie kontrolujesz i możesz negocjować.&lt;/p&gt;&lt;p data-path-to-node=&quot;11&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; line-height: 1.15; margin-top: 0px;&quot;&gt;Nie wiesz, jak w praktyce będą wyglądać pozostałe kwestie. Stąd Twoje oczekiwania finansowe muszą dyskontować ryzyko zmiany. Zawsze możesz trafić na gorszą kulturę organizacyjną, gorszych ludzi, słabszy projekt czy toksycznego managera. Pytanie brzmi: jaka kwota zrekompensuje Ci to ryzyko i pozwoli pogodzić się z ewentualnym rozczarowaniem (nie musisz przecież zostawać tam na zawsze, wystarczy na czas szukania kolejnego miejsca).&lt;/p&gt;&lt;p data-path-to-node=&quot;12&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; line-height: 1.15; margin-top: 0px;&quot;&gt;Co ciekawe, firmy doskonale rozumieją ten mechanizm. Gdy pracownik przychodzi z nową ofertą i zapowiada odejście, często pojawia się kontroferta. Podwyżka od obecnego pracodawcy nie musi nawet wyrównywać stawki z rynku – o ile przejście z 20k na 30k zł miesięcznie uzasadnia ryzyko, o tyle porzucenie znanego środowiska dla przejścia z 25k na 30k zł często przestaje się opłacać.&lt;/p&gt;&lt;p data-path-to-node=&quot;13&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; line-height: 1.15; margin-top: 0px;&quot;&gt;Stąd zachęcam do sceptycyzmu wobec myśli w stylu: „dla świetnego projektu lub super ludzi mogę zarabiać mniej”. To, że w dniu podpisywania umowy projekt i zespół wyglądają świetnie, nie gwarantuje, że za pół roku lub rok cokolwiek z tego zostanie. Pieniądze to jedyna rzecz, którą masz gwarantowaną na papierze.&lt;/p&gt;&lt;p data-path-to-node=&quot;14&quot; style=&quot;font-family: &amp;quot;Google Sans Text&amp;quot;, sans-serif; line-height: 1.15; margin-top: 0px;&quot;&gt;Dodatkowy plus: jeśli wszyscy zaczną podchodzić do tematu w ten sposób, pensje na rynku będą rosły.&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2024/05/a-tak-o-liczbach.html&quot; target=&quot;blank&quot;&gt;A tak o liczbach ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2011/01/kilogram-i-ile-to-jest-to-jest-dopiero.html&quot; target=&quot;blank&quot;&gt;Kilogram i ile to jest? To jest dopiero spór :-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2015/05/wybory.html&quot; target=&quot;blank&quot;&gt;Wybory&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2008/11/moe-to-kogo-zaskoczy-ale-nie-do-koca.html&quot; target=&quot;blank&quot;&gt;Emerytury&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2018/09/ja-dugo-przygotowywac-sie-do-rozmowy.html&quot; target=&quot;blank&quot;&gt;Ja długo przygotowywać się do rozmowy? (kwalifikacyjnej w IT ;-))&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/4849657575624603369/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/07/wzor-na-zmiane-pracy.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/4849657575624603369'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/4849657575624603369'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/07/wzor-na-zmiane-pracy.html' title='Wzór na zmianę pracy ;-)'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-8857333615890986550</id><published>2026-07-24T16:20:03.541+02:00</published><updated>2026-07-24T16:21:52.393+02:00</updated><title type='text'>Kitten driven development - czyli jak sprawić by nikt nie robił kotkom krzywdy</title><content type='html'>&lt;p data-path-to-node=&quot;3&quot;&gt;Dość często miewam dyskusje o backward compatibility i wersjonowaniu API.&lt;/p&gt;&lt;p data-path-to-node=&quot;4&quot;&gt;Jestem z obozu, który uważa, że każda breaking change to moment, gdy ktoś zabija kotka. Ja nie chcę, by kotki ginęły, więc staram się projektować API czy struktury danych tak, by były one jak najbardziej otwarte na ewolucję bez konieczności stosowania specjalnych narzędzi.&lt;/p&gt;&lt;p data-path-to-node=&quot;5&quot;&gt;Preferuję jak najbardziej low-levelowe API, uznając, że klient powinien móc je obudować w dowolny sposób. Najlepiej, jeśli takie API nie wprowadza pojęć typu projekty czy dokumenty, tylko operuje na danych na jak najniższym poziomie. Jeśli użytkownik chce mieć projekty, to po prostu sam sobie je stworzy.&lt;/p&gt;&lt;p data-path-to-node=&quot;6&quot;&gt;Nie lubię enumów. Jeśli jednak są już potrzebne do zaprezentowania pewnych stanów, chętniej dodam nowe pole dla większej granulacji, niż będę zmieniał istniejącą listę enumów. Choć szczerze mówiąc, ponieważ preferuję API samowystarczalne, te stany zwykle mają charakter czysto informacyjny.&lt;/p&gt;&lt;p data-path-to-node=&quot;7&quot;&gt;Oczywiście zawsze może pojawić się konieczność wprowadzenia breaking change. Lata pracy pokazały mi jednak, że prawie zawsze można tego uniknąć. A to oznacza, że użytkownik API nie zabije żadnego kotka.&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2006/10/ww-i-wielkie-hady-ksiek.html&quot; target=&quot;blank&quot;&gt;WWŚ i wielkie hałdy książek&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2025/07/case-insensitive-os-ma-pewne-problemy.html&quot; target=&quot;blank&quot;&gt;Case insensitive OS ma pewne problemy ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2023/06/ile-z-obligacji-odsona-2.html&quot; target=&quot;blank&quot;&gt;Ile z obligacji... odsłona 2 ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2017/03/dziennikarze-to-debile.html&quot; target=&quot;blank&quot;&gt;&quot;Dziennikarze&quot; to debile&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2018/06/czytelnictwo.html&quot; target=&quot;blank&quot;&gt;Czytelnictwo ;-)&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/8857333615890986550/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/07/kitten-driven-development-czyli-jak.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/8857333615890986550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/8857333615890986550'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/07/kitten-driven-development-czyli-jak.html' title='Kitten driven development - czyli jak sprawić by nikt nie robił kotkom krzywdy'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-1204651781928083963</id><published>2026-07-09T17:31:57.553+02:00</published><updated>2026-07-09T17:41:58.046+02:00</updated><title type='text'>&quot;Kompas&quot; z Augmented Reality ;-)</title><content type='html'>&lt;p&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/05/okrucienstwo-vibe-codingu-czesc-2.html&quot;&gt;Dzieliłem się tu już jakiś czas temu &quot;dziełkiem&quot;&lt;/a&gt; które jest kompasem pokazującym gdzie coś jest...&lt;/p&gt;&lt;p&gt;Czyli jestem w Juracie na molo i mi pokazuje gdzie jest (jaki ma bearing) molo w Sopocie...&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEik2kHvIV5hvjnAZ_ySNjA7wJHHUtuc5uDPrqtX2ELLM0Va9dL3gQuuNShWK0WWHknb4zgtJ1nYRbXq-xOjT2sUfZhWJyNo6ud79plBvLQBtBSq_fuDhCnOLy09jZCkuRMkrVWGuQuwvOOLHLGBInnWhFZdQn14qXKallIgCDKMgJsyPtfkq7XO6g&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1564&quot; data-original-width=&quot;722&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEik2kHvIV5hvjnAZ_ySNjA7wJHHUtuc5uDPrqtX2ELLM0Va9dL3gQuuNShWK0WWHknb4zgtJ1nYRbXq-xOjT2sUfZhWJyNo6ud79plBvLQBtBSq_fuDhCnOLy09jZCkuRMkrVWGuQuwvOOLHLGBInnWhFZdQn14qXKallIgCDKMgJsyPtfkq7XO6g=w296-h640&quot; width=&quot;296&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br/&gt;&lt;/div&gt;Apka dostała nawet Augmented Reality&amp;nbsp;mode ;-)&lt;p&gt;&lt;/p&gt;&lt;p&gt;Jeden problem... te wskazania kompasu w iPhone&#39;ie czy Pixelu to jedna wielka ściema jest ;-)&lt;/p&gt;&lt;p&gt;Na tym zdjęciu Gdynia jest &quot;między&quot; markerami dla Gdyni i Molo w Sopocie ;-)&lt;br/&gt;A bywa, że te markery się potrafią o 90 czy nawet 180 stopni przesunąć.&lt;/p&gt;&lt;p&gt;Oczywiście może to być przez to, że ruscy znów zagłuszają GPS (chociaż na kompas by nie mogli wpływać), ale pewnie jakaś większa ilość metalu w okolicy wszystko zaburza...&amp;nbsp;&lt;/p&gt;&lt;p&gt;Jak się ktoś chce bawić to jest tutaj&amp;nbsp;&lt;a href=&quot;https://przemelek.github.io/geo/index.html&quot;&gt;https://przemelek.github.io/geo/index.html &lt;/a&gt;- lepiej wejść telefonem, bo tam to ma sens ;-)&lt;br/&gt;Komputer nie ma kompasu :-)&lt;/p&gt;&lt;p&gt;Jak działa dziwnie to teoretycznie zrobienie ósemki (w przypadku Pixela z obracaniem w koło jego osi) powinno pomóc... ale nie ma gwarancji ;-)&amp;nbsp;&lt;br/&gt;&lt;br/&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/05/okrucienstwo-vibe-codingu-czesc-2.html&quot; target=&quot;blank&quot;&gt;Okrucieństwo vibe codingu część 2 ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/04/wyacz-czasem-anc-w-suchawkach-i-wlez-na.html&quot; target=&quot;blank&quot;&gt;Wyłącz czasem ANC w słuchawkach i wleź na molo gdy wieje wiatr i z nieba leci grad ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2023/11/chyba-zaczne-notowac-po-angielskiemu.html&quot; target=&quot;blank&quot;&gt;Chyba zacznę notować po angielskiemu... coby pomóc AI ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2014/01/timetoread-002-nowy-tag-i-poprawki.html&quot; target=&quot;blank&quot;&gt;TimeToRead 0.0.2 - nowy tag i poprawki ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2010/12/hp7-bez-manifestu.html&quot; target=&quot;blank&quot;&gt;HP7 bez manifestu ;-)&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/1204651781928083963/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/07/kompas-z-augmented-reality.html#comment-form' title='Komentarze (3)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/1204651781928083963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/1204651781928083963'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/07/kompas-z-augmented-reality.html' title='&quot;Kompas&quot; z Augmented Reality ;-)'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEik2kHvIV5hvjnAZ_ySNjA7wJHHUtuc5uDPrqtX2ELLM0Va9dL3gQuuNShWK0WWHknb4zgtJ1nYRbXq-xOjT2sUfZhWJyNo6ud79plBvLQBtBSq_fuDhCnOLy09jZCkuRMkrVWGuQuwvOOLHLGBInnWhFZdQn14qXKallIgCDKMgJsyPtfkq7XO6g=s72-w296-h640-c" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-5159303029674064499</id><published>2026-07-03T19:02:24.442+02:00</published><updated>2026-07-03T19:12:01.383+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dziwne myśli"/><title type='text'>Szuflada z panierką</title><content type='html'>&lt;p data-path-to-node=&quot;4,0&quot;&gt;Miałem kilka razy w życiu dziwne reakcje na to, że nie jem mięsa. Jakby sam fakt niejedzenia wrzucał mnie automatycznie do jakiejś konkretnej szuflady.&lt;/p&gt;&lt;p data-path-to-node=&quot;4,1&quot;&gt;A przecież: nie jem mięsa, nie piję alkoholu, nie palę, nie biorę narkotyków, nie piję kawy, nie jem lodów innych niż czekoladowe lub kakaowe (od biedy śmietankowe i waniliowe), nie zabijam, nie kradnę, nie otwieram okien w nocy, nie oglądam piłki nożnej, nie jem chrupków, nie słucham disco polo i nie czytam Paulo Coelho ;-).&lt;/p&gt;&lt;p data-path-to-node=&quot;4,2&quot;&gt;Tak, to są części mojej osobowości, a niektóre nawet tożsamości, ale one nie przypisują mnie z automatu do żadnej grupy.&lt;/p&gt;&lt;ul data-path-to-node=&quot;4,3&quot;&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;4,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,3,0,0&quot;&gt;Część tych rzeczy mam z natury&lt;/b&gt; – jak niezabijanie i niekradzenie.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;4,3,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,3,1,0&quot;&gt;Część to czysty pragmatyzm&lt;/b&gt; – nie otwieram okien w nocy, bo nie znoszę komarów, a komary uwielbiają mnie. Wybieram mniej bąbli zamiast komfortu cieplnego.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;4,3,2,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,3,2,0&quot;&gt;Części rzeczy nigdy nie zacząłem&lt;/b&gt; – jak alkohol, papierosy czy narkotyki.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p data-path-to-node=&quot;4,3,3,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,3,3,0&quot;&gt;Inne odpadły po testach&lt;/b&gt; – spróbowałem i po prostu nie wpasowały się w mój gust. Tak było z kawą, szpinakiem, mięsem czy lodami owocowymi.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p data-path-to-node=&quot;4,4&quot;&gt;Przez wiele lat jadłem mięso, ale nigdy nie byłem jego wielkim smakoszem – znam lepsze smaki. Kiedyś, jeszcze będąc mięsożercą, zażyczyłem sobie &quot;schabowego&quot;, ale w wersji wege. Okazało się, że smakuje mi tak samo jak oryginał. Wtedy do mnie dotarło: ja po prostu najbardziej lubię panierkę. Podobnie było z mizerią – z czasem odkryłem, że ogórki są mi tam w zasadzie zbędne, za to maślanka z solą i pieprzem to mistrzostwo.&lt;/p&gt;&lt;p data-path-to-node=&quot;4,5&quot;&gt;Szczerze mówiąc, od zawsze trochę brzydził mnie widok surowego mięsa albo obgryzanie kości. Ale nie mam nic przeciwko ludziom, którzy je lubią – super, świetnie, że Wam smakuje.&lt;/p&gt;&lt;p data-path-to-node=&quot;4,6&quot;&gt;Jedyny mięsny akcent, którego czasem mi brakuje, to mocno wysmażony, chrupiący boczek. Chodzi o reakcję Maillarda i ten genialny smak głębokiej karmelizacji. Na szczęście zbliżony efekt można wyciągnąć z dobrze suszonego pomidora.&lt;/p&gt;&lt;p data-path-to-node=&quot;4,7&quot;&gt;Moje niejedzenie mięsa to nie deklaracja przynależności do jakiejś subkultury czy manifest. To po prostu kwestia smaku – ja naprawdę wolę żółty ser od szynki. A kawy nie piję, bo o ile jej zapach jest genialny, o tyle smak zupełnie mi nie podchodzi. Swój przydział kofeiny i tak dostarczam z herbatą (wtedy to teina) i Coca-Colą.&lt;/p&gt;&lt;p data-path-to-node=&quot;4,8&quot;&gt;OK, czasem mogę sobie w głowie dodawać jakieś bonusowe punkty do &quot;etyczności&quot;, ale doskonale wiem, że są one trochę nie na miejscu.&lt;/p&gt;&lt;p data-path-to-node=&quot;4,9&quot;&gt;Słyszałem kiedyś wywiad z farmerem prowadzącym &quot;szczęśliwą hodowlę&quot;. Mówił, że jego zwierzęta mają świetne życie poza jednym, ostatnim dniem – ale to dzieje się szybko i nawet nie wiedzą, co je spotkało. W moim odczuciu takie mięso jest nie tylko etyczne, ale wręcz bardzo etyczne. Pomijając już fakt, że po moich własnych przygodach ze stekiem w Teksasie za żadne pieniądze nie chcę przeżywać tego znowu...&lt;/p&gt;&lt;p data-path-to-node=&quot;4,10&quot;&gt;Chodzi o coś innego: sera bez mleka zrobić się nie da. A rzeczywistość krów mlecznych rzadko bywa szczęśliwa. Skoro więc rezygnuję z mięsa, ale bez mrugnięcia okiem jem nabiał, to z tą moją wybiórczą &quot;etycznością&quot; w głowie należy podejść tak bez przesady.&lt;/p&gt;&lt;p data-path-to-node=&quot;4,11&quot;&gt;I jest to trochę wkurzające, że w ogóle muszę się z tego tłumaczyć ;-). Jak długo nie robię komuś krzywdy, to moja sprawa, co jem, a czego nie jem ;-).&lt;/p&gt;&lt;p data-path-to-node=&quot;4,12&quot;&gt;Zresztą, ja już w pierwszej czy drugiej klasie podstawówki podpadłem nauczycielom. Kazali nam wtedy napisać w ćwiczeniach do &quot;Środowiska&quot;, co jedliśmy na śniadanie. Wpisałem mój ulubiony pokarm – dżem truskawkowy. Dzisiaj wolę pomidora, pewnie przez to, że ma mnóstwo glutaminianu, a ja mam bardzo dobrze rozwinięte wyczuwanie umami (przez to też uwielbiam jajka ;-)).&lt;/p&gt;&lt;p data-path-to-node=&quot;4,13&quot;&gt;Kto wie, może to jest właśnie prawdziwy powód, dla którego nigdy nie przepadałem za mięsem? Pamiętam, że jak dostawałem kanapkę z pomidorem i szynką, to tę szynkę po prostu wyciągałem. Zdarzało mi się zjeść ją oddzielnie, &quot;na raz&quot; – no bo przecież jedzenia się nie wyrzuca – ale to była czysta metoda eliminacji odpadów. Wszystko po to, by wreszcie móc cieszyć się smakiem samego pomidora... A jeśli ten pomidor miał jeszcze cebulę, dużo soli i pieprzu, to już w ogóle było mistrzostwo.&lt;/p&gt;&lt;p data-path-to-node=&quot;4,13&quot;&gt;Tak myślę, może jak będę miał jeszcze kiedyś taką samą reakcję to wyślę ten post? ;-)&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2017/03/wegetarianizm-kaizen-czyli-ja-bywac.html&quot; target=&quot;blank&quot;&gt;Wegetarianizm kaizen - czyli ja bywać wegetarianinem bez zbytniego wysiłku ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2015/03/ja-to-mam-jednak-utylitarne-podejscie.html&quot; target=&quot;blank&quot;&gt;Ja to mam jednak utylitarne podejście do jedzenia ;-) &lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2022/08/triada-spokoju-albo-triada-antychaosowa.html&quot; target=&quot;blank&quot;&gt;Triada spokoju, albo triada antychaosowa ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2017/12/ksiazki-ktore-mi-sie-spodobay-w-2017.html&quot; target=&quot;blank&quot;&gt;Książki, które mi się spodobały w 2017&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2013/08/promocja-homoseksualizmu-co-to-niby-ma.html&quot; target=&quot;blank&quot;&gt;&amp;quot;Promocja homoseksualizmu&amp;quot; co to niby ma być?&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/5159303029674064499/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/07/szuflada-z-panierka.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/5159303029674064499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/5159303029674064499'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/07/szuflada-z-panierka.html' title='Szuflada z panierką'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-3148108277418703775</id><published>2026-07-03T18:25:13.943+02:00</published><updated>2026-07-03T18:32:15.722+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="java"/><category scheme="http://www.blogger.com/atom/ns#" term="programowanie"/><title type='text'>Enum zdradziecki jest ;-)</title><content type='html'>&lt;div&gt;Emum niby prosty jest, a bywa bardzo zdradliwy ;-)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Nie chodzi mi nawet o to, że w Java&#39;ie do wersji 8 dało się stworzyć enuma, który formalnie nie istniał, więc kod:&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;background-color: white; color: #080808;&quot;&gt;&lt;pre style=&quot;font-family: &#39;JetBrains Mono&#39;,monospace; font-size: 11,3pt;&quot;&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;public enum &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;Toster &lt;/span&gt;{&lt;br/&gt;    &lt;span style=&quot;color: #871094; font-style: italic;&quot;&gt;OTHER_TEST&lt;/span&gt;(&lt;span style=&quot;color: #871094; font-style: italic;&quot;&gt;TEST&lt;/span&gt;.getS()),&lt;br/&gt;    &lt;span style=&quot;color: #871094; font-style: italic;&quot;&gt;TEST&lt;/span&gt;(&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;TEST&quot;&lt;/span&gt;),&lt;br/&gt;    &lt;span style=&quot;color: #871094; font-style: italic;&quot;&gt;TEST2&lt;/span&gt;(&lt;span style=&quot;color: #067d17;&quot;&gt;&quot;TEST2&quot;&lt;/span&gt;);&lt;br/&gt;&lt;br/&gt;    &lt;span style=&quot;color: black;&quot;&gt;String &lt;/span&gt;&lt;span style=&quot;color: #871094;&quot;&gt;s&lt;/span&gt;;&lt;br/&gt;    &lt;span style=&quot;color: black;&quot;&gt;String &lt;/span&gt;&lt;span style=&quot;color: #00627a;&quot;&gt;getS&lt;/span&gt;() {&lt;br/&gt;        &lt;span style=&quot;color: #0033b3;&quot;&gt;return &lt;/span&gt;&lt;span style=&quot;color: #871094;&quot;&gt;s&lt;/span&gt;;&lt;br/&gt;    }&lt;br/&gt;    &lt;span style=&quot;color: #00627a;&quot;&gt;Toster&lt;/span&gt;(&lt;span style=&quot;color: black;&quot;&gt;String s&lt;/span&gt;) {&lt;br/&gt;        &lt;span style=&quot;color: #0033b3;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #871094;&quot;&gt;s&lt;/span&gt;=&lt;span style=&quot;color: black;&quot;&gt;s&lt;/span&gt;;&lt;br/&gt;    }&lt;br/&gt;}&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;był legalny, ale rzucał NullPointerException... w Java 9 już się nie skompiluje...&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Ani o to, że jeszcze wcześniej gdy kolekcje były w rozsypce zdarzał się kod:&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;background-color: white; color: #080808;&quot;&gt;&lt;pre style=&quot;font-family: &#39;JetBrains Mono&#39;,monospace; font-size: 11,3pt;&quot;&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;var &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;v &lt;/span&gt;= &lt;span style=&quot;color: #0033b3;&quot;&gt;new &lt;/span&gt;Vector&amp;lt;&amp;gt;();&lt;br/&gt;&lt;span style=&quot;color: black;&quot;&gt;Enumeration &lt;/span&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;enum &lt;/span&gt;= &lt;span style=&quot;color: black;&quot;&gt;v&lt;/span&gt;.elements();&lt;br/&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Który w Java 5 przestawał działać bo tam enum to był keyword ;-)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Nie, to są quirky wczesnej Java&#39;y (choć nadal na produkcji jest MASA kodu działającego na JVM 8 ;-))&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Chodzi o sam koncept i gdzie go używać.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Bo enum ma to do siebie, że to jest z definicji zamknięta lista. Można ją rozszerzyć, ale to zmienia API tego enuma. I niby nie ma problemu... trochę to psuje serializację, ale mało kto tego potrzebował.... do czasu.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Bo przyszło programowanie sieciowe i cały Internet zaczął pracować w debug mode z JSONem jako formatem do przesyłania danych.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Bardzo szybko programiści wpadli na to, że przecież niektóre z tych Stringów które tam są wysyłane to są enumy i zaczęli robić serializację do JSONa i deserializację z JSONa do obiektów z enumami....&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Wczoraj widziałem kolejny team (mój ;-)), który poległ z enumem, choć tym razem w Pythonie.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Jak zwykle mamy deserializację po stronie backendu, która żeby to wszystko ładnie zrobić używa enumów.... i lecie 500 gdy ktoś przyśle coś spoza listy.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Tu jest też ciekawe pytanie czy zmiana kodu by to 500 nie leciało to poprawka błędu, czy nie? ;-)&lt;br/&gt;Bo de facto kod zakładał, że istnieje legalna lista wartości i choć 500 nie jest może najlepszym sposobem na obsługę tego (400 byłoby lepsze) to nadal wołający &quot;złamał&quot; API ;-)&lt;/div&gt;&lt;div&gt;Stąd ja twierdzę, że to nie jest bug a new feature ;-)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;W innym projekcie, też małżeństwo JSONa i enuma popsuł konwersję bo dostawca danych dodał nowy typ złącza... tu team był oburzony - bo złamali specyfikację - ale ta specyfikacja nigdy nie istniała, to team sobie sam ją napisał (bardzo 2000 like podejście).&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Jeszcze wcześniej, znów JSON + Enumy, ale tam jeszcze Avro było gdzieś... i w końcu było tak architekt zmusił nas do używania Avro - bo tak lepiej, a później jak jeden z teamów źle tego użył to uznał, że OK, używajcie JSONa jako transportu ;-) [oryginalny problem był w tym, że JSON nie wspiera naturalnie migracji schemy....]&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Jeszcze wcześniej, była sobie biblioteczka annotacji do Java&#39;y, chodziło o Authz ze SpringBootem, tam w oryginalnej (mojej ;-)) wersji były scope&#39;y jako String, ktoś wziął mój kod i uznał, że zrobi to lepiej i użył Enumów... działało do momentu gdy pojawił się nowy scope... który w ogóle nie dotyczył tej aplikacji, ale że ich wersja wymuszała deserializację scope&#39;ów z tokena na enumy to mieli problem ;-)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Zaryzykuję twierdzenie, że enum nigdy nie został stworzony do bycia używanym do łączności między różnym kodem. Zrobiliśmy mu piggyback jakoś zapominając, że schema ma tendencję do zmieniania się i przez to mamy zabawne błędy z rodzaju - zmiana mnie w ogóle nie dotyczy, ale dane z wynikiem tej zmiany mogą mnie popsuć ;-)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Stąd ja tam czytając kod traktuję enum jako taki sygnał code smell (dla mnie code smell to wszystko co jest &quot;niezwykłe&quot;, enum, protected (w Java&#39;ie), extend (też w Java&#39;ie), print, catch bez obsługi wyjątku i bez logu, deklaracja szerokich Exception i tak dalej).&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Czy używam? Zależy, ale chyba zwykle nie.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Są świetne do maszyny stanów, ale stałe typu int w kodzie też działają, a są nawet bardziej czytelne.&lt;/div&gt;&lt;div&gt;Jest też sens zaryzykowania z enumem w jakieś większej klasie jeśli historia nam pokazała, że to lista jest zamknięta, albo gdy mamy obsługę &quot;unknown&quot;... ciągle to jednak jest ryzykowne bo jak wiele rzeczy da się rozszerzyć gdy pojawi się nowy enum, to nigdy nie masz pewności, że gdzieś nie ma czegoś co zostanie popsute.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Ja bym chyba nie używał, jakoś w moim kodzie nie znalazłem powodów, ale nie zakazuję, daję tylko takie &quot;dwa razy się zastanów czy użyć&quot;.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;A jeśli to ma być do JSONa to bym prawie nigdy nie używał ;-) Bardzo łatwo popsuć dane. Nawet gdy masz świetną obsługę i nieznane enumy są zmieniane w UNKNOWN... to problem jest w tym, że jeśli te dane zapiszesz i przekażesz dalej to kolejny klient dostał właśnie dane z usuniętą informacją. Ty chcesz zmienić pole innego typu, ale przy okazji popsujesz pole którego nawet nie używasz....&lt;br/&gt;Tak, to można też obejść, ale to już jest dobudowywanie na siłę maszyny która będzie naprawiać nasz zły design.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Myślę, że enum jest podobny trochę do developmentu z branchami. Daje złudne poczucie bezpieczeństwa.&lt;/div&gt;&lt;div&gt;Wielu developerów tłumaczy fakt używania branchy tym, że czują się bezpieczni bo nie mają konfliktów... do momentu integracji, która jest potencjalnie największym źródlem problemów... Enum też daje poczucie bezpieczeństwa i elegancji. Wszystko ładnie się konwertuje, nie używamy Stringów, nie ryzykujemy porównywania == między typami, których nie wolno tak porównywać.... tylko, że to też jest takie pozorne bezpieczeństwo, bo w momencie gdy schema się zmienia to nagle staje się widoczna w wielu miejscach, których byśmy mogli nawet nie podejrzewać o to, że będą dotknięte przez tę zmianę.....&lt;/div&gt;&lt;div&gt;Tu pamiętam, że robiąc za orkiestrator do deploymentów widzieliśmy pole status i pokazywaliśmy je userowi wg zasady, że mieliśmy:&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;background-color: white; color: #080808;&quot;&gt;&lt;pre style=&quot;font-family: &#39;JetBrains Mono&#39;,monospace; font-size: 11,3pt;&quot;&gt;&lt;span style=&quot;color: #0033b3;&quot;&gt;var &lt;/span&gt;&lt;span style=&quot;color: black;&quot;&gt;textToShow &lt;/span&gt;= &lt;span style=&quot;color: black;&quot;&gt;translations&lt;/span&gt;.getOrDefault(&lt;span style=&quot;color: black;&quot;&gt;s&lt;/span&gt;, &lt;span style=&quot;color: black;&quot;&gt;s&lt;/span&gt;);&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;i jakież było nasze zaskoczenie jak przebudowa w drugim systemie, który zaczął wysyłać w pewnym momencie nieznane stany to wszystko nadal działało? ;-)&lt;/div&gt;&lt;div&gt;Tajemnica była w tym, że wymusiliśmy kontrakt &quot;fireAndForget&quot;, czyli my dawaliśmy pakiet do deploymentu, ale maszyna stanów była w kodzie, który robił deployment (w operatorze dla K8S), więc on sobie wprowadził swoje enumy i rozszerzył ich listę.... ale nas nie popsuł ;-)&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2006/05/lubi-enumy.html&quot; target=&quot;blank&quot;&gt;Lubię enumy&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2009/09/javozagadka.html&quot; target=&quot;blank&quot;&gt;Javozagadka ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2017/08/finalize-do-czego-suzy-do-czego-nie-i-z.html&quot; target=&quot;blank&quot;&gt;finalize() - do czego służy, a do czego nie i z czym to się je.&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2025/08/nie-lenistwo-strach-prawdziwe-zrodo.html&quot; target=&quot;blank&quot;&gt;Nie lenistwo, a strach. Prawdziwe źródło długu technicznego&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2010/07/modale-nie-takie-dobre-dla-androida.html&quot; target=&quot;blank&quot;&gt;Modale nie takie dobre dla Androida ;-)&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/3148108277418703775/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/07/enum-zdradziecki-jest.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/3148108277418703775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/3148108277418703775'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/07/enum-zdradziecki-jest.html' title='Enum zdradziecki jest ;-)'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-8513997463244998218</id><published>2026-07-03T00:13:23.662+02:00</published><updated>2026-07-03T00:21:55.090+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programowanie"/><title type='text'>Zdolny Junior z rozmachem ;-) zwany też jako Claude Code</title><content type='html'>Nudne będzie bo znów o AI ;-)&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Czułem od dawna, że jest problem z AI w postaci Claude Code czy podobnych, ale nie do końca umiałem wskazać palcem gdzie jest problem.&lt;/div&gt;&lt;div&gt;Dziś złapałem Claude Code na dokładnie tym co czułem ;-)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Mamy sobie w produkcie opcję pobrania czegoś, wtedy jest billing robiony. Ale billujemy tylko pierwsze pobranie, kolejne są &quot;za darmo&quot;.&lt;/div&gt;&lt;div&gt;Backend o tym wie, ale frontend nie ma sygnału, że to coś już zostało pobrane.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Dałem ten kod Claude Code i najpierw poprosiłem o sprawdzenie czy w ogóle jest ta informacja o pobraniu gdzieś zapisana... jest, bo mamy link do pobranego pliku.&lt;/div&gt;&lt;div&gt;Mamy ten link wpisany w pewnym obiekcie połączonym z projektem.&lt;/div&gt;&lt;div&gt;Ale klientowi wysyłamy coś innego, mniej szczegółowego.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;No to mój zamysł był taki, jak mamy te informacje i mamy wszystkie klucze potrzebne do ich przeczytania to gdy UI prosi Backend o info o projekcie i scenach (są w projektach) to co mi szkodzi dodawać w locie wasAlreadyBilled do scen, które zostały już pobrane.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Zrobił, ale zmienił jeszcze dodatkową lambdę... pytam czemu. Odpowiada, że bez tego nie może dodać tej informacji do tego obiektu bardziej ogólnego...&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Użyłem mojego przerywacza &quot;stop and think&quot; i pytam czemu to zrobił, przecież ja mam masę danych, które nie są tak zaktualizowane i przecież nie będę ich konwertował, że ja chcę on-the-fly merge&#39;a...&lt;/div&gt;&lt;div&gt;Uznał, że może to i ma sens i zmienił kod w tym kierunku... napisał mniej tego kodu, a do tego dane wyeliminował konieczność transformacji danych.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Miał dotykać lambdy dającej informacje o projekcie (i nie, nie będziemy tu dyskutować jak szalonym pomysłem jest używanie lambd do takich rzeczy....), ale zmienił inną która zapisywała w oryginalnym obiekcie link do tego co można pobrać... Porobił też jakieś zmiany w tej projektowej... wszystko bez chwili zastanowienia. Idąc takim flow: jak w opisie sceny jest link, to znaczy, że ktoś pobrał, dzieje się to w lambdzie B, lambda A wysyła do UI liste projektów i scen, user chce mieć w wyniku lambdy A info o billowaniu nazwane wasAlreadyBilled... i uznał, że skoro już w B robi update obiektu szczegółowego i tego ogólnego (używanego przez A) to on sobie zrobi update tego obiektu ogólnego....&lt;br/&gt;I to ma sens, ale generuje problem &quot;a co z już istniejącymi danymi?&quot;. Nie sprobowałem, ale nie zdziwiłbym się gdyby po pytaniu bez stop and think i pisania o merge&#39;u i że nie chcę konwersji, to czy sam by mi nie zaproponował kodu do konwersji, a że nie ma ogólnego mechanizmu to by dopisał kolejne 500 linii kodu z konwerterem....&lt;br/&gt;&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Zrobił to jak junior. Junior robi piękny projekt, uznaje że tu się doda pole, dopisze kod do aktualizacji tego pola... tylko nie pomyśli, że coś co powinno być lekkie, zmienił właśnie w taska numer 1, bo jeszcze musi być task numer 2 do konwersji danych.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;To jest to, że junior gdy patrzy na kod widzi tu i teraz i wie jak ma być ostatecznie, ale nie myśli o tym jak stan faktyczny teraz, który jest poza kodem, w danych czy przyzwyczajeniach usera zmienić w to jak ma być.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Tak robią juniorzy (fakt, nadal spotykam seniorów którzy też na to tak patrzą...)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Claude Code to taki junior, ale fakt junior z wyobraźnią i rozmachem ;-)&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2021/03/roznica-miedzy-seniorem-i-juniorem.html&quot; target=&quot;blank&quot;&gt;Różnica między Seniorem i Juniorem ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2007/04/jak-uywamy-javay.html&quot; target=&quot;blank&quot;&gt;Jak używamy Java&amp;amp;#39;y ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/05/pierwszy-dzien-w-przyszosci-czyli.html&quot; target=&quot;blank&quot;&gt;Pierwszy dzień w przyszłości, czyli programista jako dyspozytor Agentów&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/06/zauroczy-mnie-cladue-code.html&quot; target=&quot;blank&quot;&gt;Zauroczył mnie Cladue Code ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2017/02/o-tym-czemu-branche-sa-ze.html&quot; target=&quot;blank&quot;&gt;O tym czemu branche są złe...&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/8513997463244998218/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/07/zdolny-junior-z-rozmachem-zwany-tez.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/8513997463244998218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/8513997463244998218'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/07/zdolny-junior-z-rozmachem-zwany-tez.html' title='Zdolny Junior z rozmachem ;-) zwany też jako Claude Code'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-5888532724832457492</id><published>2026-07-01T18:54:53.696+02:00</published><updated>2026-08-03T23:51:57.983+02:00</updated><title type='text'>Agent nie na wszystko pomoże ;-)</title><content type='html'>Ciągle przyglądam się temu całemu AI... i nadal nie wiem jakie mam wrażenia.&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Mam zamiar znów sobie zrobić trenowanie z robienia zadanek koderskich. Uznałem, że spróbuję użyć tu AI do pomocy.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Są 3 główne obszary w takich przygotowaniach.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Pattern matching,&lt;/li&gt;&lt;li&gt;Użycie odpowiednich klocków,&lt;/li&gt;&lt;li&gt;Implementacja klocków&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Jedno to jest zobaczyć &quot;o, tutaj najlepiej użyć fast/slow pointers&quot;, drugie to zaimplementować.&lt;/div&gt;&lt;div&gt;Jedno to &quot;o graf&quot;, drugie to uznanie &quot;a tutaj chcemy najkrótszą ścieżkę czyli BFS&quot; i w końcu trzecie to implementacja.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Na każdym etapie można mieć &quot;mocniejsze&quot; i &quot;słabsze&quot; obszary ;-)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;&quot;Z poprzednich razów&quot; mam masę kodu, jakieś 1600 rozwiązań w postaci kodu źródłowego i jeszcze w Markdown jakieś ~300.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Uznałem, że dam AI szansę ;-)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Wystawiłem to na pożarcie Antigravity CLI (taki &quot;uboższy&quot; kuzyn Claude Code, tylko że od Google).&lt;/div&gt;&lt;div&gt;Dostało instrukcję by spróbować najpierw na podstawie tego kodu spróbować zidentyfikować klocki... kiedyś sobie to rozpisałem, że miałem takowe w postaci mind mapy... ale jak wiele mind map zgubiłem ;-)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Nie wyszło mu zbytnio, ale spróbuję jeszcze raz.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Drugie było takie &quot;przejrzyj ten kod i znajdź miejsca gdzie mam największe problemy i opisz te miejsca i zaproponuj drogę do poprawy&quot;....&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Coś zrobił... (inna sprawa, widzę wyraźnie, że w takim treningu TRZEBA mieć kogoś kto Cię sprawdza, może to być LLM, ale ktoś musi sprawdzić, bo to, że działa na przykładach to za mało - z doświadczenia, Gemini jest tu słabsze od ChatGPT). Antigravity najpierw uznało, że od razu napisze regexy do wyszukiwaina błędów.... nie była to dobra ścieżka ;-)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;W końcu mu wytłumaczyłem, że niech wybierze losowe 10% plików i zrobi ich pełną analizę wysyłając ich treść do modelu żeby ten model zrobił analizę... dopiero później powinno spróbować zrobić syntezę tych błędów....&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Wszystko spaliło masę tokenów i zużyłem swoje 5h w 20 minut ;-) więc jeszcze użyłem Opusa 4.6...&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Ale wyniki są takie sobie, teraz jest pytanie czy lepiej po prostu to wszystko zrobić samemu i używać Gemini czy bardziej ChatGPT do sprawdzania moich rozwiązań i to trzymać w Markdownie do późniejszej analizy, czy więcej wysiłku włożyć w te prompty....&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Mam wrażenie, że to jest tak często. Że Agenty robią cuda, jak akurat wyczują o które cuda Ci chodzi, albo to są &quot;prostsze&quot; cuda do zrobienia i nic na razie nie bije zrozumienia rozwiązania samemu... tylko fakt, z Agentem wiele rozwiązań które są &quot;good enough&quot; można zrobić w godzinę, a swoje &quot;good enough&quot; robiłoby się tydzień albo miesiąc.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Zrobienie mocka dla serwisu to jest coś co robiono miliony razy, sam to robiłem kilka razy - dziś nie muszę tego pisać sam, proszę Claude Code czy podobne i mam.&lt;/div&gt;&lt;div&gt;Naniesienie prostych zmian w auth/authz z dobrze napisanej (przeze mnie ;-)) historyjki&amp;nbsp;to też jest prosta sprawa.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Jak sprawa jest prosta w definicji to jest błysk ciupagi.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Ale na razie są, albo ja mam problemy z nowatorskimi sprawami gdzie sam nie do końca wiem co powinno dziać się w środku.&amp;nbsp;&lt;/div&gt;&lt;div&gt;Zwykle jest tak, że jeżeli sam bym tu i teraz umiał napisać ten kod, ale mnie by to zajęło parę godzin czy dni to umiem to wyjaśnić narzędziu, ale jak jest coś z czym sam miałbym problemy (np. zamiana polyline z x,y,z w klotoidę, która jest linią bazową dla drogi tak by kolejne klotoidy i pasy na tej drodze do siebie geometrycznie pasowały) to pierwsze &quot;o wow! zrobił to, ale są jeszcze problemy&quot; to pikuś, problem jest później jak te problemy trzeba rozwiązać...&amp;nbsp;&lt;/div&gt;&lt;div&gt;Coś jak z prawem Parkinsona:&lt;/div&gt;&lt;div&gt;- &quot;Ile masz zrobione kodu po tych 2 dniach?&quot;&lt;/div&gt;&lt;div&gt;- &quot;z 80 %&quot;&lt;/div&gt;&lt;div&gt;- &quot;o to jutro skończysz?&quot;&lt;/div&gt;&lt;div&gt;- &quot;nie, no coś Ty, z 2 tygodnie to jeszcze zabierze&quot;&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;O, jak Agent ma &quot;myśleć&quot; to na razie mu to idzie słabo, jak ma robić szybko coś co my byśmy umieli zrobić, albo coś co było robione już wiele razy to wtedy wymiata.&lt;br/&gt;A w pewien sposób im lepiej płatna praca, tym mniej powtarzalnych rzeczy ;-)&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/08/napisz-zle-ale-napisz.html&quot; target=&quot;blank&quot;&gt;Napisz źle, ale napisz ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/05/bob-wykazuje-inicjatywe-i-jakze-piekny.html&quot; target=&quot;blank&quot;&gt;Bob wykazuje inicjatywę ;-) i jakże piękny mógłby być Googlebook....&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2018/10/zapiski-z-29-pietra.html&quot; target=&quot;blank&quot;&gt;Zapiski z 29 piętra....&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/06/o-urokach-uprzezy-czyli-o-tym-ze.html&quot; target=&quot;blank&quot;&gt;O urokach uprzęży – czyli o tym, że okiełznana moc LLM-ów jest bardziej użyteczna niż nieokiełznana&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2025/07/agent-by-agent-czyli-o-tworzeniu-agenta.html&quot; target=&quot;blank&quot;&gt;Agent by Agent ;-) czyli o tworzeniu agenta AI agentem AI ;-)&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/5888532724832457492/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/07/agent-nie-na-wszystko-pomoze.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/5888532724832457492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/5888532724832457492'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/07/agent-nie-na-wszystko-pomoze.html' title='Agent nie na wszystko pomoże ;-)'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-7852064257105586925</id><published>2026-06-19T12:15:16.959+02:00</published><updated>2026-08-21T00:21:56.308+02:00</updated><title type='text'>Zauroczył mnie Cladue Code ;-)</title><content type='html'>&lt;p&gt;Dostałem w pracy Claude Code, w takiej specjalnie wersji, że nie gada do Anthropica, a działa z modelami na AWS Bedrock. &lt;br/&gt;Mam limit 200 USD miesięcznie (nie wiem jak jestem daleko czy blisko tego limitu ;-)).&lt;/p&gt;&lt;p&gt;Ale od tego Claude Code się można uzależnić - do tego człowiek zaczyna być bardzo defensywny w pisaniu.&amp;nbsp;&lt;br/&gt;&quot;Zrób X, tak by Twoje wyniki były takie same jak z Y, stwórz listę hipotez jak Y działa i testuje je sprawdzając Twoje wyniki z tymi z Y, pamiętaj nie wolno Ci używać Y do tego by dostać wyniki, masz prawo do tego tylko by stworzyć baseline do którego będziesz porównywać swoje hipotezy&quot; ;-)&lt;/p&gt;&lt;p&gt;Ale przyznaję, że kusi mnie by wejść prywatnie w Claude Code PRO, ma co prawda dużo mniej tokenów, ale ja w domu znów nie rozwiązuję tak wielu rzeczy.&lt;/p&gt;&lt;p&gt;Mam Claude Code z lokalnymi modelami na moim Mac Mini M4 Pro z 64 GB RAM, ale jednak Qwen3.5 czy Gemma4:31b są fajne, ale nie umywają się do &quot;prawdziwych&quot; modeli ;-)&lt;/p&gt;&lt;p&gt;Tzn. Antygravity ma wersję CLI, wcześniej było Gemini CLI, ale Claude Code wydaje się mieć w sobie &quot;to coś&quot;. Poprosiłem o raport z porównania 2 rzeczy i dodałem, że fajnie by było jakby dodał do tych issue ich lokalizację jako lat, lon... to on mi dodał mapę i pokazuje to na mapie ;-)&lt;/p&gt;&lt;p&gt;Trochę taka praca z Claude Codem czy podobnymi toolami to nadzór nad super produktywnym i bardzo bystrym, ale też bardzo &quot;tępym&quot; koderem, który umie na pisać masę rzeczy - ale nie zawsze myśli o tym czy one mają sens ;-) [&lt;/p&gt;&lt;p&gt;To jest trudne do uchwycenia, że te narzędzia do vibe codingu potrafią zrobić w kilka minut coś co nam by zajęło kilka tygodni albo i dłużej, z drugiej strony co jakiś czas robią tak głupie rzeczy, że człowiek się zastanawia jak to w ogóle może działać - sztuka, której się ciągle uczymy to znalezienie tych miejsc z &quot;przebłyskami geniuszu&quot; i blokowanie wchodzenia w pętle robienia tej samej głupiej rzeczy w kółko - wyrok jeszcze nie zapadł czy tak się da pracować ;-)&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/07/zdolny-junior-z-rozmachem-zwany-tez.html&quot; target=&quot;blank&quot;&gt;Zdolny Junior z rozmachem ;-) zwany też jako Claude Code&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/07/agent-nie-na-wszystko-pomoze.html&quot; target=&quot;blank&quot;&gt;Agent nie na wszystko pomoże ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/08/moj-pierwszy-skill.html&quot; target=&quot;blank&quot;&gt;Mój pierwszy skill ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/05/okrucienstwo-vibe-codingu-czesc-2.html&quot; target=&quot;blank&quot;&gt;Okrucieństwo vibe codingu część 2 ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/08/journaling-w-llm-albo-jak-mapuje-po.html&quot; target=&quot;blank&quot;&gt;Journaling w LLM, albo jak małpuję po LLMie ;-)&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/7852064257105586925/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/06/zauroczy-mnie-cladue-code.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/7852064257105586925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/7852064257105586925'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/06/zauroczy-mnie-cladue-code.html' title='Zauroczył mnie Cladue Code ;-)'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-2392183053635596511</id><published>2026-06-18T11:44:15.902+02:00</published><updated>2026-06-18T11:51:51.227+02:00</updated><title type='text'>Heurystyki kasowe – jak z OS-ów w branży lub firmie wyczytać potencjalne zarobki</title><content type='html'>Taka obserwacja z rynku, a może bardziej obserwacji rynku przez ostatnie 20+ lat ;-)&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Jest prosta heurystyka dla stwierdzenia czy w danym biznesie/danej gałęzi gospodarki jest dużo czy mało pieniędzy dla programistów (i ogólnie też).&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Wystarczy popatrzeć na OSy używane do uruchamiania większości podstawowych narzędzi ;-)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Jeśli większość specjalistycznego softu jest dla Windows to raczej jest mało kasy w tym biznesie. Bo i klienci i dostawcy działają na Windows, które zwykle trafia do firm gdy te zamawiają &quot;najtańszy&quot; komputer.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Windows + Linux - tu już jest lepiej, bo fakt istnienia wersji dla Linuksa sugeruje, że część tego softu będzie działała na serwerach, czyli mamy już coś co wymaga by usiadł do tego ktoś z wyższą pensją ;-)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Windows + Linux + macOS - OK, tutaj jest soft, który jest &quot;dla wszystkich&quot;, są w miarę znośne pieniądze.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;macOS + Linux - No i jesteśmy w miejscach gdzie dobrze płacą ;-)&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;To jest heurystyka - więc działa zwykle, ale nie zawsze - gry AAA są praktycznie tylko na Windows, ale już masa softu używanego do tworzenia elementów w grach działa też na macOS ;-)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;To samo jeśli chodzi o ocenę firmy gdy się jest na rozmowach:&lt;/div&gt;&lt;div&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;Windows wszędzie -&amp;gt; pieniędzy dużych tu nie będzie,&amp;nbsp;&lt;/li&gt;&lt;li&gt;Windows czasem -&amp;gt; kasa znajdzie się,&amp;nbsp;&lt;/li&gt;&lt;li&gt;Mac i Linux rządzą wszędzie -&amp;gt; kasy dużo zwykle będzie ;-)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2015/09/heurystyka-dostepnosci-strach-przed.html&quot; target=&quot;blank&quot;&gt;Heurystyka dostępności a strach przed imigrantami&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2011/08/przyspieszanie-backtrackingu.html&quot; target=&quot;blank&quot;&gt;Przyśpieszanie backtrackingu&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2023/12/czemu-obecny-sejm-i-rzad-sa-wyjatkowe.html&quot; target=&quot;blank&quot;&gt;Czemu obecny Sejm i rząd są wyjątkowe?&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2019/12/osarch-osname-sunarchdatamodel-co-to.html&quot; target=&quot;blank&quot;&gt;&amp;quot;os.arch&amp;quot;, &amp;quot;os.name&amp;quot;, &amp;quot;sun.arch.data.model&amp;quot; co to jest i co pokazuje na jakiej maszynie i OSie? ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2020/11/youtubefacebookinstagram-dla-jedzenia.html&quot; target=&quot;blank&quot;&gt;YouTube/Facebook/Instagram dla jedzenia by nie przeszedł ;-)&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/2392183053635596511/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/06/heurystyki-kasowe-jak-z-os-ow-w-branzy.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/2392183053635596511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/2392183053635596511'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/06/heurystyki-kasowe-jak-z-os-ow-w-branzy.html' title='Heurystyki kasowe – jak z OS-ów w branży lub firmie wyczytać potencjalne zarobki'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-3108826566333167924</id><published>2026-06-08T01:41:49.666+02:00</published><updated>2026-06-08T01:51:47.363+02:00</updated><title type='text'>Monachium to złe lotnisko jest ;-)</title><content type='html'>&lt;p&gt;Ja i lotnisko w Monachium się jakoś nie lubimy ;-)&lt;/p&gt;&lt;p&gt;Dwa lata temu leciałem do Wenecji przez Monachium (w końcu, nie jestem pewien jak to się zaczęło, ale były cancele i rebooking)... i samolot z Krakowa się spóźnił i spałem w Monachium...&amp;nbsp;&lt;/p&gt;&lt;p&gt;Tydzień temu miałem lecieć z Krakowa do Rzymu przez Monachium... tym samym chyba nawet kodem jak ten przypadek sprzed 2 lat.... nie poleciałem bo najpierw samolot był spóźniony od 3h, a później zrobili podsłuchałem (stałem obok gate&#39;u), że robili dodatkowy przegląd techniczny, w końcu próbowali resetować komputer i w końcu... Cancel, rebook na następny dzień na lot z KRK do FCO bezpośrednio, ale z LOTem ;-)&lt;/p&gt;&lt;p&gt;No i dziś (czy już wczoraj) wracałem z Rzymu do Krakowa przez Monachium.... ale podobno w Monachium pożar był, albo dym czuli... w każdym razie zamknęli lotnisko i wylądowałem w Stuttgarcie ;-)&lt;/p&gt;&lt;p&gt;Po perypetiach wylądowałem w hotelu, który sobie samo bookowałem (IHG rządzi... nadal ;-)) i w końcu (po ponad godzinie) dostałem nawet maila z info, że jutro lecę ze Stuttgartu do Krakowa z Eurowings...&lt;/p&gt;&lt;p&gt;Widzę, już że:&lt;br/&gt;&lt;/p&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;li&gt;będę musiał zacząć bookować bilety nie przez Lufthanse,&lt;/li&gt;&lt;li&gt;będę musiał unikać połączeń przez Monachium&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/06/co-sie-dzieje-jak-ci-zrobia-cancel-lotu.html&quot; target=&quot;blank&quot;&gt;Co się dzieje jak Ci zrobią Cancel lotu na lotnisku &quot;startowym&quot;?&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2024/05/nie-lubie-lufthansy.html&quot; target=&quot;blank&quot;&gt;Nie lubię Lufthansy&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/05/kurza-twarz.html&quot; target=&quot;blank&quot;&gt;Kurza twarz ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2021/09/punkty-uzalezniaja.html&quot; target=&quot;blank&quot;&gt;Punkty uzależniają ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2010/12/reset.html&quot; target=&quot;blank&quot;&gt;Reset&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/3108826566333167924/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/06/monachium-to-ze-lotnisko-jest.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/3108826566333167924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/3108826566333167924'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/06/monachium-to-ze-lotnisko-jest.html' title='Monachium to złe lotnisko jest ;-)'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-1841685484400380373</id><published>2026-06-03T11:49:29.758+02:00</published><updated>2026-08-21T00:21:55.032+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="programowanie"/><title type='text'>O urokach uprzęży – czyli o tym, że okiełznana moc LLM-ów jest bardziej użyteczna niż nieokiełznana</title><content type='html'>&lt;div&gt;GenAI/LLMy dziś to są konie pociągowe. O tym, jak dobrze działają, decyduje jakość uprzęży (aka harness).&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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...&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Ale jak się zastanowić, to nie jest dziwne.&lt;/div&gt;&lt;div&gt;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ć.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div&gt;Okazało się też, że świetnie działa to na kodzie.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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).&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;W tym miejscu nastąpił wysyp masy narzędzi, które działały... ale jednak nie do końca.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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ą.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;No bo jak na przykład testować coś, co pod spodem używa LLM-a?&amp;nbsp;&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Tu pojawia się pytanie, na które nie znamy jeszcze odpowiedzi, ale możemy się domyślać ;-)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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?&amp;nbsp;&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Część mnie uważa, że przyszłością jest właśnie ta druga opcja.&amp;nbsp;&lt;/div&gt;&lt;div&gt;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.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2009/10/wait-i-notifynotifyall-najbardziej.html&quot; target=&quot;blank&quot;&gt;wait() i notify()/notifyAll() - najbardziej nierozumiane metody klasy Object ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/08/journaling-w-llm-albo-jak-mapuje-po.html&quot; target=&quot;blank&quot;&gt;Journaling w LLM, albo jak małpuję po LLMie ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/05/miaem-farta.html&quot; target=&quot;blank&quot;&gt;Miałem farta...&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2023/03/chciaem-popsuc-g1-i-mi-sie-na-razie-nie.html&quot; target=&quot;blank&quot;&gt;Chciałem popsuć G1 i mi się na razie nie udało ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/03/nie-scrum-nas-nie-uratowa-od-waterfalla.html&quot; target=&quot;blank&quot;&gt;Nie, Scrum nas nie &quot;uratował&quot; od Waterfalla... za to powoli sam się nim staje ;-)&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/1841685484400380373/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/06/o-urokach-uprzezy-czyli-o-tym-ze.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/1841685484400380373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/1841685484400380373'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/06/o-urokach-uprzezy-czyli-o-tym-ze.html' title='O urokach uprzęży – czyli o tym, że okiełznana moc LLM-ów jest bardziej użyteczna niż nieokiełznana'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-3337746408766141881</id><published>2026-06-03T10:51:43.874+02:00</published><updated>2026-08-11T19:02:16.857+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dziwne myśli"/><title type='text'>Obszedłem cały kraj! ;-)</title><content type='html'>No stało się – obszedłem cały kraj.&amp;nbsp;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Taki mniejszy, wręcz miniaturowy, a oficjalnie: najmniejszy na świecie.&lt;br/&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL2J_AQaHJ8Dkhx9c7L7gKlVsGvIrg6eXTBYuc9KXLISaITzKwg8MkQSgNq-Pz60KqQ32xgWmlqFr027-pQ6L5evEmZtIxOUMCfsQn-0cTD1B4e6Xyy86tuwHBmxdYm8UA3FGhrqzJWOk7m8ljS5NbG4tF4cDQ0aQX_4B_WkkJYq56JVRzjHovfQ/s2436/IMG_4321.PNG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;2436&quot; data-original-width=&quot;1125&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL2J_AQaHJ8Dkhx9c7L7gKlVsGvIrg6eXTBYuc9KXLISaITzKwg8MkQSgNq-Pz60KqQ32xgWmlqFr027-pQ6L5evEmZtIxOUMCfsQn-0cTD1B4e6Xyy86tuwHBmxdYm8UA3FGhrqzJWOk7m8ljS5NbG4tF4cDQ0aQX_4B_WkkJYq56JVRzjHovfQ/w296-h640/IMG_4321.PNG&quot; width=&quot;296&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br/&gt;&lt;div&gt;&lt;p data-path-to-node=&quot;11,1&quot;&gt;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.&lt;/p&gt;&lt;p data-path-to-node=&quot;11,2&quot;&gt;W uszach miałem &lt;i data-index-in-node=&quot;16&quot; data-path-to-node=&quot;11,2&quot;&gt;Mistrza i Małgorzatę&lt;/i&gt;, 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.&lt;/p&gt;&lt;p data-path-to-node=&quot;11,4&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,4&quot;&gt;A co do samego &lt;i data-index-in-node=&quot;15&quot; data-path-to-node=&quot;11,4&quot;&gt;Mistrza i Małgorzaty&lt;/i&gt;...&lt;/b&gt;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.&lt;/p&gt;&lt;p data-path-to-node=&quot;11,5&quot;&gt;Te sceny przypomniały mi zresztą inną książkę, którą niedawno przesłuchałem (i która też mnie wymęczyła) – &lt;i data-index-in-node=&quot;107&quot; data-path-to-node=&quot;11,5&quot;&gt;Dominion: The Making of the Western Mind&lt;/i&gt;. 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.&lt;br/&gt;Zresztą może to był i zamiar Bułhakowa zestawić tę groteskę z powieścią historyczną, żeby podkreślić groteskowość tej Moskwy?&lt;br/&gt;&lt;br/&gt;Nie zmienia to jednak faktu, że dokonałem tego - obszedłem cały kraj! Co z tego, że najmniejszy na świecie? ;-)&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2025/06/czerwcowe-ksiazki.html&quot; target=&quot;blank&quot;&gt;Czerwcowe książki&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/08/wenecja-i-weneckie-kodowanie.html&quot; target=&quot;blank&quot;&gt;Wenecja ;-) i weneckie kodowanie&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2023/12/czytelniczy-listopad.html&quot; target=&quot;blank&quot;&gt;Czytelniczy listopad&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2006/10/atak-kreacjonistw.html&quot; target=&quot;blank&quot;&gt;Atak kreacjonistów&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2010/08/jak-rozwiazac-krzyzowke.html&quot; target=&quot;blank&quot;&gt;Jak rozwiązać krzyżówkę? ;-)&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/3337746408766141881/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/06/obszedem-cay-kraj.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/3337746408766141881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/3337746408766141881'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/06/obszedem-cay-kraj.html' title='Obszedłem cały kraj! ;-)'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL2J_AQaHJ8Dkhx9c7L7gKlVsGvIrg6eXTBYuc9KXLISaITzKwg8MkQSgNq-Pz60KqQ32xgWmlqFr027-pQ6L5evEmZtIxOUMCfsQn-0cTD1B4e6Xyy86tuwHBmxdYm8UA3FGhrqzJWOk7m8ljS5NbG4tF4cDQ0aQX_4B_WkkJYq56JVRzjHovfQ/s72-w296-h640-c/IMG_4321.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-1119066099981726912</id><published>2026-06-03T10:24:30.360+02:00</published><updated>2026-06-08T01:51:47.124+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dziwne myśli"/><title type='text'>Co się dzieje jak Ci zrobią Cancel lotu na lotnisku &quot;startowym&quot;?</title><content type='html'>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).&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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 ;-)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div&gt;Nawet się zbytnio nie zdenerwowałem, bardziej miałem - a takie jesteście dranie...&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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....&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;Później były telefony, jakieś wymiany zdań &quot;15 minut? Szybki przegląd techniczny&quot;, później kolejne 15, jeszcze 10 i komentarz o resetowaniu... i w końcu Cancel ;-)&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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ść...&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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 ;-)&lt;/div&gt;&lt;div&gt;Trzeba iść do &quot;zgubionego bagażu&quot; (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.&lt;/div&gt;&lt;div&gt;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.&lt;/div&gt;&lt;div&gt;&lt;br/&gt;&lt;/div&gt;&lt;div&gt;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)&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2017/08/co-sie-dzieje-gdy-moj-pierwszy-samolot.html&quot; target=&quot;blank&quot;&gt;Co się dzieje gdy mój pierwszy samolot się spóźnia i mam mało czasu na przesiadkę?&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/06/monachium-to-ze-lotnisko-jest.html&quot; target=&quot;blank&quot;&gt;Monachium to złe lotnisko jest ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/05/kurza-twarz.html&quot; target=&quot;blank&quot;&gt;Kurza twarz ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2012/02/autobus-ze-skrzydami.html&quot; target=&quot;blank&quot;&gt;Autobus ze skrzydłami...&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2020/01/jednak-lubie-united.html&quot; target=&quot;blank&quot;&gt;Jednak lubię United ;-)&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/1119066099981726912/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/06/co-sie-dzieje-jak-ci-zrobia-cancel-lotu.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/1119066099981726912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/1119066099981726912'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/06/co-sie-dzieje-jak-ci-zrobia-cancel-lotu.html' title='Co się dzieje jak Ci zrobią Cancel lotu na lotnisku &quot;startowym&quot;?'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-24419026.post-2246818142845719036</id><published>2026-05-31T16:59:15.094+02:00</published><updated>2026-06-08T01:51:47.063+02:00</updated><title type='text'>Kurza twarz ;-)</title><content type='html'>&lt;p&gt;Jest tak, moja wielka wyprawa do Rzymu odbywa się przez Monachium.&lt;/p&gt;&lt;p&gt;Ponieważ moje planowanie jest takie sobie to wybrałem późny lot uznając, że będę w Gliwicach na Fluffym... Nie pojechałem.&lt;/p&gt;&lt;p&gt;Na lotnisku byłem za wcześnie.&lt;/p&gt;&lt;p&gt;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.&lt;/p&gt;&lt;p&gt;Czyli planowany odlot z Krakowa do Monachium jest gdy zaczyna się boarding na mój samolot w Monachium ;-)&lt;/p&gt;&lt;p&gt;Systemy jeszcze nic nie stwierdziły, ale już w Monachium dostanę na 99% info, że lecę jutro ;-) i skierowanie do hotelu...&lt;/p&gt;&lt;p&gt;Co ciekawe to jest prawie kropka w kropkę to samo co miałem 2 lata temu lecąc do Wenecji, też późnym lotem ;-)&lt;/p&gt;&lt;p&gt;Bardzo możliwe, że tym samym.&amp;nbsp;&lt;/p&gt;&lt;p&gt;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 ;-)&lt;/p&gt;&lt;p&gt;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 ;-)&lt;/p&gt;&lt;p&gt;Teraz tylko trzeba starć się włączyć z nudą...&lt;/p&gt;&lt;br/&gt;&lt;br/&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Podobne posty&lt;/span&gt;&lt;sup&gt;&lt;span style=&quot;;font-size:75%;color:red;&quot;&gt;beta&lt;/span&gt;&lt;/sup&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/06/co-sie-dzieje-jak-ci-zrobia-cancel-lotu.html&quot; target=&quot;blank&quot;&gt;Co się dzieje jak Ci zrobią Cancel lotu na lotnisku &quot;startowym&quot;?&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2024/05/nie-lubie-lufthansy.html&quot; target=&quot;blank&quot;&gt;Nie lubię Lufthansy&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/06/monachium-to-ze-lotnisko-jest.html&quot; target=&quot;blank&quot;&gt;Monachium to złe lotnisko jest ;-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2011/07/to-kalkulator-zyje.html&quot; target=&quot;blank&quot;&gt;To (kalkulator) żyje :-)&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://przemelek.blogspot.com/2026/05/bad-bad-planner-przemek-no-fluffy-for.html&quot; target=&quot;blank&quot;&gt;Bad, bad planner (Przemek), no Fluffy for you ;-)&lt;/a&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://przemelek.blogspot.com/feeds/2246818142845719036/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://przemelek.blogspot.com/2026/05/kurza-twarz.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/2246818142845719036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/24419026/posts/default/2246818142845719036'/><link rel='alternate' type='text/html' href='http://przemelek.blogspot.com/2026/05/kurza-twarz.html' title='Kurza twarz ;-)'/><author><name>przemelek</name><uri>http://www.blogger.com/profile/14956032882265621104</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>