Moje projekty / OpenOffice.org2GoogleDocs / Bloggeroid / Gadacz / Chrome2Chrome / Kontakt ze mną   

niedziela, lipca 27, 2025

Case insensitive OS ma pewne problemy ;-)

Tak ogólnie to jestem wielkim zwolennikiem backward compatibility i seamless transition.

Czyli jak sam piszę soft to próbuję to robić tak, że będzie umiał pracować ze starymi formatami danych.
Ogólnie staram się to tak robić by istniała zawsze deterministyczna ścieżka transformacji. To się do pewnego stopnia da prawie zawsze zrobić.

System plików w macOS jest by default case insensitive, czyli plik README.md i readme.md są tym samym plikiem. Da się podobno system plików zmienić na case insensitive, ale wymaga to dziwnych operacji (jak reformatowanie dysku, bo jak OS jest OK z oboma przypadkami, to dysk by default jest sformatowany dla case insensitive).
To case insensitive jest jak rozumiem pozostałością po wcześniejszych OSach, najpewniej tym z Apple DOS z Apple II, który miał chyba tylko uppercase i tak zostało, więc system plików dla Classic MacOS stał się case insensitive i jak Classic MacOS stał się OS X (czyli de facto NextOS z Rosettą) to i system dla OS X dostał case insensitivity... OK, jest też wersja bardziej oficjalna, że Classic MacOS dostał ten ficzer specjalnie bo to było przyjazne dla userów... moje 20+ pracy z kodem sugerują, że to mogło być ubieranie w szatki ficzera czegoś co mogło wynikać np. z przeportowania kodu ;-) [ale fakt, to mogła być przemyślana decyzja, nie mająca nic wspólnego z tym, że kod dla Lisy był pisany na Apple II w Pascalu, czyli w języku który jest case insensitive i na OSie który wspierał tylko wielkie litery, a kod dla Classic MacOS był pisany na Lisa'ie....]
Zwykle to case insensitive nie robi problemów... chyba, że chcesz zrobić rename pliku z README.md do readme.md (czy jak w moim przypadku gdy przez pomyłkę miałem add.java i chciałem zmienić w Add.java).
Rename głupieje, bo każą mu zmienić nazwę pliku w już istniejącą nazwę....

Chociaż wydaje się, że twórcy narzędzi programistycznych, a może i samego OS mogliby wprowadzić zmiany w działaniu rename ;-) coś jak dodanie if'a który sprawdza, że hmm... nazwa pliku już istnieje i uchwyt do pliku to jest ten sam plik, ale jednak znak po znaku obie nazwy się różnią, więc trzeba pójść specjalną ścieżką... choć jak znam życie to ten przypadek też ma jakieś problemy, nie wiem, np. nie jest jednoznaczny przy konkurencyjnym dostępie do plików ;-) albo fanatyczny product owner powiedział "nie będziemy robić tej zmiany" ;-)

piątek, lipca 25, 2025

Prakacje męczą ;-)

Ostatnimi czasy jestem w trybie prakacyjnym (aka workation).

Mam za sobą już 4 tygodnie w Las Palmas de Gran Canaria w lutym, 4 tygodnie w Juracie w czerwcu, teraz jestem w Wenecji, a jeszcze mam w planach Juratę i po głowie mi chodzi znów Gran Canaria....

Niby to jest fajne, nawet odkryłem supermoce polegającą na braniu 1 dnia urlopy w tygodniu, wtedy na 4 dni pracy są 3 dni wolnego w fajnym miejscu.

Ale też jest "ciemna" strona ;-) człowiek jest po prostu zmęczony. Codziennie przechodzę z 15-25 km. Tutaj teraz często przy temperaturze 30 stopni C.

Więc jak mam wolne to nie mam ochoty wychodzić ;-), ale wtedy mam to "to po to tyle płacisz za ten wyjazd żeby siedzieć w domu?"

No nie dogodzisz człowiekowi ;-)

Mam parę projektów, które wymagają mojej uwagi i po przejściu tych ~20 km i dniu pracy jak wracam to nie mam znów tak dużo siły, a trzeba jeszcze zrobić zadanie na LeetCode. Więc w końcu oglądam odcinek Glee (Brittany Pierce Rulez!!!, btw. Heather Morris, która ją gra zrobiła największy postęp bo zaczęła jako extra żeby nauczyć ich jakiegoś tańca, dostała niemą rolę i w ciągu jednego sezonu zaczęła być istotnym bohaterem drugoplanowym, a w końcu zaczęła być też na pierwszym planie. Robi wrażenie)

Najbardziej lubię pierwsze kilka dni, bo wtedy radość nowego miejsca znosi zmęczenie,  później się robi rutyna, ale taka dziwna, albo bardziej nawet nie rutyna, a poruszanie się po linii najmniejszego oporu.

A projekty czekają.... a takie robienie z dobiegu, raz na kilka dni po 5-10 minut to nie jest robota ;-)

środa, lipca 23, 2025

Wyzwania ;-)

Dzień zaczyna się od tego wyzwania:


i mantry "tylko żeby nie zlecieć"

Później jest to wyzwanie:


i mantra "tylko żeby nie walnąć"... wtedy nie walnę, jak zapomnę o mantrze to....

Jak wstaję z łóżka jest jeszcze:

Jak pamiętam "bardziej w prawo" to wstaję dobrze i wygodnie...

(temperatura spada to wychodzi ze mnie chęć tworzenia, że nadal jest wysoka, to moje dzieła nie są najwyższych lotów ;-))

Maksymalna temperatura operacyjna Przemka

Mam chyba temperaturę operacyjną ;-) albo bardziej chyba poznałem swoja górną granicę temperatury operacyjnej ;-)

27-28 stopni C ;-) 

Jest sobie zadanie 1.5 w Cracking the Coding Interview, trzeba sprawdzić czy 2 stringi są od siebie oddalone o co najwyżej 1 edycję (zamiana znaku, skasowanie znaku lub dodanie znaku).

Wiem, że umiem to zadanie zrobić bo jak te 5 lat temu robiliśmy z koleżanką w ramach trenowania przed ewentualnymi rozmowami po 3 zadania dziennie to dość szybko to zrobiłem (jej rozwiązanie było chyba ładniejsze).

A dziś nic, null... dopiero wieczorem jak temperatura spadła to mi się w głowie od razu pojawiło rozwiązanie ;-)

Co z tym?

Opcji jest kilka ;-)

  • klima
  • zamieszkać w Las Palmas de Gran Canaria
  • praca w nocy ;-)
  • zamieszkać w Juracie (nie jest tak stabilna jak Las Palmas de Gran Canaria, ale w lato też zwykle nie przekracza tych 25 stopni ;-))
  • suck it - zaakceptować to ;-)

wtorek, lipca 22, 2025

Przeglądarkowy zawrót głowy

Mój setup przeglądarkowy jest taki:
  • Chrome - ogólnie przeglądanie Internetu - jestem zalogowany do Google
    • dodatkowo w pracy mam 2 profil, używający innego konta, które zawsze porzucam gdy zmieniam pracę, więc nie muszę się przejmować hasłami czy podpowiedziami z poprzedniej pracy
  • Firefox z Facebook Container - FB, Newsy (Wyborcza, Newsweek, Polityka, Rzepa, Onet)
Idea jest taka, że trudniej mnie śledzić ;-) bo główna powierzchnia reklamowa czyli Facebook i Newsy nie wiedzą gdzie ja chodzę po Internecie ;-)

W Chrome używałem mojej wtyczki Chrome2Chrome, która umarła bo Manifest V2 (chociaż wydaje mi się, że mógłbym jej dać V3), wtyczka używa "dzielonego między instancjami" Chrome obiektu do przesyłania stron między instancjami... czyli z komputera A mogę przesłać do B tabkę.

Kusi mnie przejście na Arc'a... ale nie wiem czy ten obiekt dzielony między instancjami tam jest (używam chrome.storage.sync i AI Overviews mówi, że nie działa), więc jak uBlock Orgin (btw. czemu już nie µBlock Orgin? ;-)) by mi działał to Chrome2Chrome nie będzie działać...

Do tego chciałbym jakoś wciągnąć do miksu jeszcze Safari... ale nie do końca mam pomysł gdzie je użyć...

Kiedyś było prościej ;-)

[Update parę godzin później]
Już mi uświadomiono, że Arc się nie rozwija, teraz Zen jest w modzie ;-)
A ja się po informacji o nierozwijaniu Arc'a dowiedziałem o ich nowej przeglądarce Dia, która ma wersję tylko dla ARMowych Maców ;-)

Depresja temperaturowa, czyli chyba jednak zrobię klimę... kiedyś ;-)

Dzisiejsze 34 stopnie C w Wenecji mnie chciały zabić...
Dokładniej siadł mi nastrój i stałem się bardzo negatywnie nastawiony do świata. Przygnębia mnie polityka, praca, to że jestem przygnębiony, a nawet to że mi zwinęli most (był taki tymczasowy przez kanał Giudecca'i) ;-)

Stąd dwie lekcje ;-)
Raczej nigdy więcej Wenecji w lipcu/sierpniu ;-) [zapomniałem, byłem tu w 2021, ale jednak hotel ma większą bezwładność cieplną niż AirBnb i tam było chłodniej (w końcu Hotel Indigo w Wenecji to dawny klasztor ;-))] i chyba trzeba będzie jednak w domu zrobić klimę.
Ale zaskakujące jest to jak gorąco sprawia, że człowiek jest po prostu głupi. Nie chce się myśleć, każda trudniejsza rzecz powoduje wkurzenie. Nawet audiobook, którego słucham czyli God Delusion Dawkinsa jest zbyt poważny i najchętniej posłuchałbym czegoś lekkiego i tęsknię za np. Lesiem czy Dzikim Białkiem Chmielewskiej.
Niby wiesz, że istnieje pomodoro, ale zapominasz o tym.
Co ciekawe kawałki Abby i niektóre, takie żwawsze, metalowe/rockowe sprawiają, że słuchając je człowiek czuje się jakby było chłodniej ;-) ale może po prostu szybciej chodzę bo muzyka bardziej skoczna?  ;-)

Ogólnie miewam ataki depresji wywoływanej temperaturą ;-) i to jest ciekawe, z jednej strony jest masa słońca i jest jasno, więc antydepresyjnie, z drugiej gorąco i depresyjnie ;-)

piątek, lipca 18, 2025

Wyjście na 5 łupsów!

Moje weneckie mieszkanie ;-) jest całkiem fajne.

Jest w Castello, ma 2 piętra ;-) i jest jakieś 2-3 razy większe od poprzedniego (które jest 2 pietra niżej ;-))



Ma jednak pewną wadę...



Belki w suficie... o które (nie wszystkie) co jakiś czas uderzam głową ;-)

Jak wstaję z łóżka to może być pierwsza, to mnie sadza z powrotem do łóżka... później wchodząc do kuchni jest drugi raz o framugę, wychodząc 3 raz, jeszcze wychodząc z budynku, schodząc po schodach jest lustro, człowiek odruchowo się poprawia i prostuje... więc jest 4 belka i przy wychodzeniu znów framuga ;-)

Stąd przy odpowiednim dniu jedno wyjście to 5 łupsów w głowę...

Dziś w nocy walnąłem 2 razy ;-)

środa, lipca 16, 2025

Agent by Agent ;-) czyli o tworzeniu agenta AI agentem AI ;-)

Spróbowałem vibe coding z Gemini CLI.

Żeby było zabawnie poprosiłem je o napisanie mi czegoś podobnego do Gemini CLI, ale działającego z lokalnym modelem.

Myślałem o Codellama i Deepseek-r1, okazało się, że mniejsze modele z Codellama i Deepseek-r1 nie dawały w ogóle rady, ale już Codellama 34b, coś tam daje radę...

Zacząłem od prompta, który wytłumaczył, że chcę zbudować coś podobnego do Gemini CLI, ale z lokalnym modelem i że żeby dostać się do tego modelu to może używać kodu modułu mistral.py, który mu dałem. Wytłumaczyłem też, że powinien dodać do kodu fragmenty pozwalające na wykonywanie funkcji takich jak zapisanie pliku, przeczytanie pliku i uruchomienie komendy. Jako testu kazałem Gemini CLI instruować tworzonego agenta, że ma stworzyć plik z kodem w Pythonie, który stworzy program do liczenia Pi metodą Monte Carlo.

Zacząć działać, a ponieważ budowa agenta nie jest czymś co zostało oprogramowane już wiele razy to model, którego używa nie ma raczej duże wiedzy o tym...

Wygenerował kod i tu był pierwszy problem ;-) bo postanowił uruchomić agenta, ale jak go uruchomił to nie miał możliwości interakcji z nim ;-) bo przecież Gemini CLI to NPM i 1 wątek...

Przerwałem mu, wytłumaczyłem problem i zaproponowałem zrobienie wersji z serwerem HTTP, która będzie słuchać i odpowiadać, a on będzie mógł gadać do niej cUrlem...

Spodobało mu się, przepisał kod.

Uruchomił, wysłał cUrla i okazało się, że mu nie działa...

Zaczął debugować i z uporem maniaka prosił mnie o to żebym ręcznie włączył lub wyłączył serwer... wytłumaczyłem, że przecież sam to może robić... stwierdził, że fakt, i zaczął uruchamiać serwer w background (z &), a później killować go z pkill...

Problem był taki, że model zwracał kod, ale tworzony agent nie chciał go zapisać na dysk... czyli najpierw Gemini CLI kilka razy sam chciał ten kod zapisać do pliku, wyjaśniłem w końcu mu grzecznie, że oszukuje, że to ma zrobić agent.

Więc zaczął go poprawiać, uruchamiać, zabijać... uznał, że musi zrobić debug... tu miał masę problemów, jednym z nich było to, że znów żeby móc widzieć output serwera HTTP to musiał go uruchomić... ale w foreground, więc nie mógł wysłać cUrlem nic, bo wisiał ;-)

W końcu mu przerwałem i zaproponowałem, że może lepiej będzie użyć przekierowania do pliku, ba że może przecież przekierować do pliku output z serwera i z cUrla i porównać...

Sam też sprawdziłem kod i okazało się, że w prompt'cie tłumaczył modelowi, że ma komendy owijać w <<CMD>> </CMD>>, ale w kodzie szukał końcowego znacznika <</CMD>> więc go tam nie było...

W międzyczasie sam wymyślił, że lepiej od przekierowywania strumienia użyć biblioteki logging ;-)

Wypalił w trakcie całą pulę tokenów/requestów do lepszego modelu, przełączył się na gemini-2.5-flash i spalił 63% contextu.

W końcu zrobił jakąś pierwszą wersję agenta, która umie pisać na dysku i która stworzyła plik z kodem liczącym Pi metodą Monte Carlo, ale już uruchomić tego nie umiał... a w końcu chciał nadpisać plik "example content" ;-)

Często blokował się na czymś trywialnym i trzeba mu to było tłumaczyć jak "bardzo tępemu juniorowi", chociaż bardziej komuś kto niby kojarzy, że kod można pisać, ale jest pozbawiony jakichkolwiek zdolności do rozwiązywania problemów ;-)

Z tym, że parę lat temu nawet w to miejsce by nie można było dotrzeć ;-)

poniedziałek, czerwca 30, 2025

Czerwcowe książki

 Jak zwykle od dłuższego czasu prowadziły audiobooki....

Audiobooki były takie:

  • Harry Potter and Deathly Hallows  by J. K. Rowloing
  • The Rational Optimist: How Prosperity Evolves by Matt Ridley
  • Factfulness: Ten Reasons We're Wrong About the World — and Why Things Are Better Than You Think by Anna Rosling Rönnlund, Hans Rosling, and Ola Rosling
  • Boso ale w ostrogach by Stanisław Grzesiku
  • Pięc lat kacetu by Stanisław Grzesiku
  • Na marginesie życia by Stanisław Grzesiku
  • Nexus: A Brief History of Information Networks from the Stone Age to AI by Yuval Noah Harari
  • Dominion: The Making of the Western Mind by Tom Holland
  • Man's Search for Meaning by Viktor Frank
  • Zen and the Art of Motorcycle Maintenance by Robert M. Pirsig

Wszystko poza Dominion to powtórka.
Dominion było hmmm.... ciekawe, tak naprawdę zacząłem je z 2 miesiące temu i tak męczyłem i w końcu przemęczyłem. 
Przyznam, że brakuje mi wiedzy by móc ocenić jak jest zgodne z faktami to co przedstawia Holland. Brzmi to sensownie, ale nie wiem ile w tym jest prawdy. Np. w tym, że religia jako słowo powstała dopiero do opisania chrześcijaństwa i później zaczęto jej używać do opisania tego co robili też inni ludzie. Niby rozumiem to, że dziwne połączenie kultów z Bliskiego Wschodu z kulturą Rzymu mogło stworzyć coś nowego, że miłosierdzie czy pomoc słabszym to twory chrześcijaństwa. Chociaż bardziej mnie chyba przekonuje to co jest w The Shortest History of Europe Hirst'a, czyli kultura Europy/zachodu jako produkt konfliktu i godzenia antyku, chrześcijaństwa i kultury plemion germańskich.
Rational Optimist i Factfulness były jako takie "pocieszacze" po wynikach wyborów, że jednak jest tam gdzieś jakiś sens ;-)
Grzesiuk był przez to, że na YT obejrzałem filmik o tym jak to żyło się w II RP i przypomniała mi się lektura Grzesiuka i opowieść mojego dziadka (który był z tego samego pokolenia co Grzesiuk, choć był młodszy o ~10 lat). IMHO te książki, szczególnie Pięć lat kacetu, ale i Boso ale w ostrogach to powinny być lektury. Sam czytałem je w chyba IV klasie SP i zrobiły na mnie wrażenie.
Po Pięciu latach kacetu stwierdziłem, że wrócę do Man's Searching for Meaning Frankla, bo ciut podobna tematyka, w sensie tu obóz i tu obóz, oni przecież siedzieli nawet przez chwilę niemal w tym samym obozie (tylko w innych podobozach jaj rozumiem).
Obie choć mówią o strasznych czasach, budują jakoś taki bardziej nazwijmy to optymistyczny sposób patrzenia na świat i trudności.
Zen and the Art of Motorcycle Maintenance oszukiwałem... słuchałem to bardzo szybko i wiele mi umknęło, kiedyś mi się chyba ciut bardziej podobało, bo podobało mi się to przedstawienie nauki na podstawie obsługi motocykla.

Przeczytałem za to całe 2 książki ;-)
  • Axis Crossing
  • One of Three
obie Scott'a Juchy :-) Axis Crossing to był reread, One of Three było nową książką, 3 z chyba 5 serii ;-)
Nadal dobre feel good SF. Chociaż chyba najbardziej lubię Phyreans i to Axis Crossing, Silver Ships też są niezłe (ale nie aż tak), bo w pewnym momencie tych bohaterów jest zbyt wielu.
Ale nadal jak się patrzy na tych ludzi i kosmitów i to co widać w naszym świecie to zazdro ;-)

poniedziałek, czerwca 02, 2025

No i po wyborach... ehhh.... ale moja cisza wyborcza działa ;-)

No i po wyborach i wynik nie jest tym na który miałem nadzieję, chociaż po pierwszej turze i tym, że "po tamtej" stronie było ~900k głosów więcej obawiałem się tego wyniku i szacowałem go na 2/3... dlatego pojechałem do Wawy żebyśmy się policzyli.
W końcu brakło niecałych 400k głosów. A inaczej patrząc, w porównaniu do 2023 ubyło ~1.3 mln głosów.

Dobra, ale ja tu nie o tym ;-)

Okazuje się, że moja polityka nie oglądania wieczoru wyborczego i pełnego unikania jakiegokolwiek kontaktu z mediami i social mediami ochroniła mnie przed możliwym zawałem serca...
Bo pierwsze wyniki exit pools pokazywały, że Rafał Trzaskowski wygrał. Gdybym to oglądał to bym się strasznie ucieszył, niby bym sobie mówił "OK, to są pierwsze exit pools, jeszcze się to może zmienić", ale byłby szczęśliwy i później bym dostał kopa przy late pools i później miał ciągle nadzieję, że się może odwrócą. 
Jakby do tego dodać jeszcze bazarek to w ogóle.... ja przez przypadek jeszcze w ciągu dnia zobaczyłem info, że mocno rośnie frekwencja, szczególnie w "rafałowych" województwach i to już zaczęło budzić moje nadzieje....

Czyli to co stosuję już od chyba 2020, albo 2019, czyli prywatna cisza wyborcza, która zaczyna się tak na tydzień przed wyborami (ale tak stopniowo) i kończy w momencie ogłoszenia oficjalnych wyników - ma sens.


Podobne postybeta
Pomysł na filtr Internetowy ;-)
USB-C w iPhonie dobra rzecz :-)
Zemsta niepełnosprytnych
Czemu obecny Sejm i rząd są wyjątkowe?
Komputer na korbę ;-)