sobota, kwietnia 01, 2023

Bliskie spotkanie jeleniego stopnia ;-)

Będąc dziś na spacerze spotkałem jelonki, które próbowały chyba walczyć ;-)

Nie wiem tylko czemu wybrały takie miejsce ;-)


Przy okazji widać, że iPhone ssie ;-)

Tutaj filmik z zoomem z iPhone'a 14 Pro Max

Jak widać dość duża część filmiku jest ze złą ostrością...

A tutaj bez zooma z Pixela 6 Pro ;-)


Ogólnie nie należy się śmiać z mojego komentarza ;-) 

Nie widuję jeleni codziennie ;-)

Tak naprawdę chyba widziałem pierwszy raz w życiu tak na żywo ;-)

To jest trochę obok ośrodka wczasowego w którym teraz mieszkam ;-) 

Na półwyspie do teraz widziałęm:

  • szczeniaczka foki - dokładnie rok wcześniej od tego zdarzenia ;-) (czyli 31 marca 2022),
  • sarny,
  • lisy, 
  • kunę,
  • no i teraz jelonki :-)
Do tego masa grubych kotów ;-) i trochę psów, są jeszcze ptaki których nie umiem zidentyfikować i nazywam je peryskopami ;-)




Podobne postybeta
Morze i plaża mnie dziś zmoczyły i chciały pochłonąć ;-)
Jowisz na zdjęciu :-)
Ratować czy nie?
Zabawy z Zoomem - ikonki ;-)
Drugi klasyfikator jako "sanity check"

Docker image to taka kanapka ;-)

Jakiś rok temu miałem przed sobą problem jak kopiować obrazy Dockerowe miedzy różnymi registry.

Problem w końcu rozwiązaliśmy inaczej, i bardziej sensownie ;-) przez proste pozwolenie tak PROD jak i DEV na korzystanie z tego samego ECRa ;-) ale wcześniej było kilka pomysłów.

Oryginalnie były sobie skrypty, które logowały się do jednego registry, robiły pull obrazu, później logowały się do drugiego registry i robiły push.

Był więc pomysł by to zrobić z Java'y przez wołanie dockera.... niby powinno działać, ale obraz Dockerem to jest rzecz trudna ;-)

W końcu skończyłem na napisaniu swojego "klienta" Dockera.

(przy okazji mam wrażenie, że już o tym pisałem, ale trudno ;-))

Co mnie zachwyciło to to, że dzięki tym zabawą z tym klientem dla registry zrozumiałem parę spraw, np. to czemu nie można wygenerować zbytnio Docker image na podstawie obrazu ;-) i co to jest w ogóle obraz ;-)

Zaczynając od początku, moje rozumowanie było takie, Docker jakoś pobiera te obrazy i jakoś je pushuje... robi to najpewniej po HTTP, więc wystarczy go udać ;-)

No i okazało się, że obraz to tak naprawdę nie jedna binarka a plik manifestu, który składa się z warstw.

Registry można poprosić o manifest, w manifeście są informacje o obrazie takie jak nazwa, tag, podpis, zmienne środowiskowe i co najważniejsze informacje o warstwach.

Stąd pull polega na tym, że najpierw pobiera się manifest, na podstawie danych o warstwach w manifeście pobiera się poszczególne warstwy... i tu czasem wystarczy po prostu nie pobierać warstwy, bo przecież już ją możemy mieć w innym obrazie :-)

Push to znów najpierw POST z info, że chcemy zrobić upload leyara (tak zaczynamy z layerem :-)) i dostajemy zwrotkę z nagłówkiem Location w którym jest info gdzie mamy pchać layera. Wtedy robimy tam PUT i musimy dodać digest do naszego bloba i pchamy tego bloba pod ten adres (który jest zbudowany z tego co w POST dostaliśmy.

Jak już wrzucimy warstwy to robimy PUT manifestu :-) (w nim są też tagi które chcemy obrazowi nadać).

Teraz kopiowanie Docker imange'ów między repozytoriami to pobranie z jednego manifestu, próba pobrania z drugiego tych manifestów i dla tych, których nie ma na serwerze docelowym trzeba ze źródłowego pobrać warstwę, i wysłać ją do docelowego. 
W końcu robimy push docker image'a.

Trochę mi brakuje takich zabaw programistycznych ;-)




Podobne postybeta
Focus
Czemu deploymenty są takie trudne?
Taki tam rant po Gradle i Dockerze ;-)
Chrome2ChromeV2 na GitHub :-)
Książkowa faza - stare hard SF :-)

piątek, marca 31, 2023

Otagowane v0.0.1 ;-)

W końcu udało mi się zmusić mój kod do dodawania podobnych postów do tagowania tych postów przy użyciu modeli, które wytrenowałem :-)

Zmiany są takie:

Tagbyłojestróżnica%
Android1361673118,56
dziwne myśli2933869324,09
dziwne narzędzia217236198,05
Google Docs777811,28
Java186203178,37
JavaScript686911,45
książki576369,52
marudzenie101119,09
polityka971111412,61
prawie jak nauka13613821,45
programowanie4094877816,02

Najwięcej postów zostało dotagowanych dziwnymi myślami, co nie jest aż takie dziwne, bo to są zwykle dłuższe posty, albo mi się wydaje ;-)

Jeszcze jest przede mną kilka wyzwań, np. to by ten sam model nie był używany do mojego angielskiego bloga ;-) (na którym nie pisałem od lat ;-)), oraz by modele były tworzone też dla nowych tagów, by wszystkie tagi były obsługiwane (teraz tagi .net i openofficer.org odpadły z powodu kropki w nazwie ;-)).
Do tego trzeba dodać fragment który będzie obserwował, że np. zabrałem postowi tag, więc będzie się starać go nie tagować (co teoretycznie uczenie modeli powinno zagwarantować).

To całe tagowanie zacząłem bo chciałem sprawdzić czy się da, a to było związane z tym, że bloga używam, czy bardziej używałem jako notatnika i chciałem użyć tagów do wyciągnięcia postów np. o programowaniu jako zaczątków notatek... do tego jeszcze też nie doszedłem ;-)

Ale mam już dotagowane posty automagicznie :-) (później spróbuję czy i ten post da się dotagować ;-))



Podobne postybeta
Pomysł na projekt MLowy ;-)
Tagowanie postów MLem - trzeba to przepisać ;p
Tagowanie MLem... ciąg dalszy ;-) nadal brak sukcesów ;p
Potok świadomości - Machine Learning może tagować posty ;-), iPhone ssie, fajne książki, spać.....
Dyski vs ja - 1:0 ;-)

Copilot chyba pomaga ;-)

Tak w ramach eksperymentów zacząłem się bawić Copilotem od GitHuba i niby nic, a jednak raz na jakiś czas zadziwia.

Dziś np. chciałem sobie dodać do skryptu kawałek kodu, który weźmie zapisze mapę "znormalizowany tag" do taga, czyli dziwne_mysli do dziwne myśli.

I dodałem kod wrzucający to do mapy tag2simpleTag i już sam próbował zrobić zapis tego do zapiklowanego pliku (to Python), ale chciałem inaczej więc zacząłem z white open("... i tu już sam zaczął proponować i zaproponował zapis w postaci znormalizowany_tag,tag czyli tej na jakiej mi zależało ;-) 

Dopiero później się okazało, że nie dodał znaku nowej linii ;-)

Będę musiał licencję tego przeczytać, ale dopuszczam możliwość kupienia subskrypcji ;-)




Podobne postybeta
Potok świadomości - Machine Learning może tagować posty ;-), iPhone ssie, fajne książki, spać.....
Tablet marzeń
Workflow dla Alfreda do dodawania tasków z projektami i labelkami do Todoista :-)
ChatGPT jest potężne...
Deska

czwartek, marca 30, 2023

Dopisywanie czegoś do własnego kodu, który ma wiele lat jest trudne ;-)

Próbuję dodać do mojego kodu, który liczy podobne posty zdolność do dodawania tagów liczonych wg modeli, które stworzyłem w ramach moich zabaw z ML.
Jest problem ;-)
Parę lat temu gdy postanowiłem uruchamiać to narzędzie do dodawania podobnych postów na Raspberry Pi mocno je przepisałem.
Miałem wtedy RPi z całymi chyba 512 MB RAM (albo nawet 256 MB..) i niestety Java spędzała tam większość czasu na GC, stąd pozmieniałem apkę tak by jak najwięcej rzeczy trzymała na dysku.
Co jest fajnym pomysłem, ale oznacza, że teraz muszę kombinować ;-)
Już mam kawałek, który liczy nowe tagi... ale nie wrzuca ich do pliku pośredniego, więc nie ma ich jeszcze w miejscu które robi update'y postów.

Mam wrażenie, że kod się powinno optymalizować jakoś inaczej ;-) idealnie tak by same optymalizacje były gdzieś z boku, tak by nie brudziły oryginalnego kodu... chociaż nie wiem czy tak się da.
W przypadku takich gdzie coś trzeba wykonać szybko powinno się dać, bo to jest po prostu kod, ale ja mam jeszcze to, że oszczędzam RAM i przez to trzymam obiekty w plikach, i nie mam nigdy wszystkiego w pamięci więc nawet serializacja do końca by nie pomogła.

Ale tak patrzę na ten kod i teraz bym tego tak nie napisał ;-) ale fakt, że większość elementów które wzbudzają moją niechęć czy niepokój ;-) wynika wprost z tego, że między kawałkami jak pobranie postów, liczenie i publikacja wszystko po drodze trzymam w plikach...

Jak jest to podobno chińskie przysłowie czy przekleństwo (chociaż podobno wcale nie chińskie :-)) "obyś żył w ciekawych czasach", to ja powiem "obyś przerabiał swój własny kod" ;-)
Btw. z tego też powodu mam poważne problemy z kontraktorami pracującymi z kodem, to są zwykle świetni spece, ale jednak nie ma w nich tego przekonania, że jest duża szansa, że za 5 lat wrócą do tego samego kodu i będą musieli go zmieniać. 



Podobne postybeta
Tnę i przerabiam na mniejsze, czyli nieprzewidziane skutki refactoringu
Jestem anonimowym programistą....
AppInventor - tego się da używać :-)
Przekleństwo podwójności ;-)
SCRUM i ogólnie Agile to często taka zakamuflowana forma premature optimization

środa, marca 29, 2023

Hexenkochbuch dla kleistów ;-)

Kiedyś widziałem w Enterze albo Bajtku info o Shareware z Książką Kucharską Czarownicy (chyba Hexenkochbuch).
Było tam wszystko w stylu jak zrobić płyn do mycia i podobne.

W Project Hail Mary główny bohater ma pakiet wszystkiego softu który został napisany + wszystkich książek na świecie.
Idea jest taka, że nikt nie wie co będzie musiał zrobić więc łatwiej dać mu cały soft i niech w razie czego sam decyduje.

Oczywiście używa go do np. zbudowania systemu do wymiana informacji z kimś i tak dalej ;-)

I przyznam, że podobałoby mi się ta idea :-)
Coś co miałoby tak może nie wszystkich software na świecie, ale wybrany przez jakichś ludzi najważniejszy software na świecie, z instrukcjami w postaci książki kucharskiej ;-)

Do tego instrukcje jak tego używać... i jeszcze możliwość połączenia tego :-)

Takie coś od zawsze za mną chodzi, tylko w postaci czegoś co pozwoliłoby pisać "programiki" na telefonie, które by umiały rozwiązywać różne problemy, od liczenia czasu wschodu i zachodu słońca, przez robienie arkusza ze stanami konta, po coś co np. ogląda wszystkie zdjęcia które mam otwarte na stronie i znajduje te z zadaną twarzą i wszystko to niby zostało już napisane, ale nie jest takie proste do połączenia ;-)
Zawsze jak o tym myślę jak zasypiam to mam wizję jakie to by było proste do zrobienia i genialne... 
Później rano o tym myśle i są problemy ;-) bo imho żeby się za to zabrać trzeba by było najpierw mieć listę takich przydatnych cosiów które by się chciało zbudować i na ich podstawie próbować coś uogólniać... ale nigdy nie miałem pełnej listy takich cosiów ;-)

Najdalej z tym doszedłem z Alfredem i Worflowami do niego z moim zestawem "text operations" ;-)
Podejrzanie większość z tych rzeczy to rzeczy, które mi były potrzebne w poprzedniej firmie i przydają się w obecnej ;-)

Tak ogólnie z tego potoku świadomości widać, że chciałbym czegoś co pozwoliłoby na prostsze tworzenie rozwiązań ;-)
(np. teraz jest tak, że mam przy sobie w Juracie na moim laptopiku kod źródłowy programu do dodawania podobnych postów i chciałem go zacząć przerabiać na coś co doda tagi automagicznie... ale oczywiście nie mam wszystkich bibliotek, mam za to kod Bloggeroida w którym mam wszystko co robią te biblioteki, ale to sklejenie tego wszystkiego wymaga przepisywania kodu i "mi się nie chce"... a przecież to powinno być takie łatwe....)



Podobne postybeta
Rube Goldberg machine do panowania nad spotkaniami... częściowego chociaż ;-)
4 rzeczy ;-)
A takie tam słowo na niedzielę ;-)
O wyższości klas anonimowych
Nie wierze w polyglot developer, ale... ;-)

wtorek, marca 28, 2023

Chyba najtrudniejszy komponent UI - pasek postępu ;-)

Wpadlibyście na to, że Progress Bar to jeden z trudniejszych elementów UI? ;-)
Jeśli nie najtrudniejszy.

Niby prosty, wystarczy powiedzieć jak daleko jesteśmy w procesie... I to nie jest trudne jak przerabiamy coś, idziemy przez powiedzmy 10000 cosiów i updatujemy Progress Bar za każdym krokiem, albo w jakichś batchach.
W tym przypadku można się nawet posłużyć ETA i podać czas do zakończenia... i jak długo tak przeciętnie rozmiar problemów jest stały to wszystko będzie ładnie działać.

Przykładem tutaj może być np. pobieranie pliku z sieci gdy znamy jego rozmiar.
Wiemy ile już pobraliśmy, możemy wiedzieć ile to już zajęło i nawet możemy wyliczyć ile czasu zostało i podać czas zakończenia ;-)

Używamy wzoru:

ETA = time_from_start/downloaded_bytes*total_bytes+start_time

Jak chcemy tylko ile czasu zostało to nie dodajemy start_time.

Pasek postępu jest prosty gdy mamy znaną liczbę problemów i problemy są tej samej wielkości (tak mniej więcej) 

Problem w tym, że to są nudne przypadki ;-)

Ciekawiej jest jak nie znamy rozmiaru/liczby problemów, albo nie są one tej samej wielkości.

Pierwsze to np. gdy pobieramy plik z sieci, a serwer nie podał nam Content-Length i każe używać Chunked. Pobieramy i nic nie wiemy, czy te 100 MB to już prawie cały plik czy dopiero zaczęliśmy?

Drugi to użycie paska postępu do schowania różnych rzeczy pod jednym paskiem. Mamy np. 10 kroków i każdy trwa inaczej, a do tego są zależne od jakichś rzeczy, które są poza naszą kontrolą.

Jeśli np. widzimy pasek postępu dla aktualizacji OSa, bo pod jenym paskiem jest pobieranie danych z sieci (zależne od prędkości Twojego internetu), walidacja pliku (prędkość Twojego CPU i dysku), instalacja (CPU i dysk) i ewentualna walidacja apek (w Androidzie coś takiego jest i zależy od CPU, prędkości storage'u i ilości apek). 
Tutaj dobrze działający pasek postępu to super wyczyn, który się nie zdarza ;-)

A niby takie to proste i ktoś Ci zgłosi błąd "make progress bar more reliable" ;-)




Podobne postybeta
ETA - liczymy szacowany czas zakończenia [przybycia ;-)]
OOo2GD (OpenOffice.org2GoogleDocs) 1.2.2
Idioci
"Zapomniałem napisać, że w piątek (albo sobote, choć chyba był to czwartek)"
Język a postrzeganie rzeczywistości

poniedziałek, marca 27, 2023

W drodze...

Uznałem, że pójdę na spacer... I idę na Hel.
Trasa z Juraty na Hel po plaży jest ciekawa i w niektórych miejscach plaża ma całe 3 metry szerokości, a w innych (takich jak to gdzie jestem z 50 albo i 100.
Tu plaża mająca około 100 km ;-) szerokości ;-)


Tutaj taka gdzie musiałem przejść po drzewie ;-) [już jestem za]




Wycieczka jest ciekawa, ale trochę straszna bo trudno zawrócić.
Idę więc dalej....

posted from Bloggeroid




Podobne postybeta
Morze i plaża mnie dziś zmoczyły i chciały pochłonąć ;-)
Wycieczka po LA ;-)
Eksperyment ;-)
Zaskoczenie
Workation ;-)

niedziela, marca 26, 2023

Morze i plaża mnie dziś zmoczyły i chciały pochłonąć ;-)

Morze mnie dziś zmoczyło i prawie pochłonęło ;-)

W ramach akcji "przejdźmy jak najwięcej po półwyspie" przeszedłem dziś 28 km, czyli prawie 40k kroków ;-)
Z czego dużą część po plaży i idąc po plaży gdzie są o takie cosie (z wczoraj zdjęcie:


No i idąc do Jastarni z Juraty szedłem po takich i było OK, jak wracałem fala mi buta najpierw zalała ;-) a że jej było dużo to piasek się zrobił miękki i mnie chciał pochłonąć, więc musiałem zabawnie wyglądać jak nagle przyspieszyłem i zacząłem bardzo wysoko nogi podnosić i rozglądać się gdzie mogę szybko przeskoczyć na plaże ;-)
Powiem tyle, chodzenie przy 6 stopniach C po plaży z mokrym butem, albo i dwoma nie jest najprzyjemniejsze ;-) ale jeden plus, stopy przestają boleć ;p



Podobne postybeta
W drodze...
Bliskie spotkanie jeleniego stopnia ;-)
Nie podobają mi się wyniki wyborów
Czy to już pracoholizm? ;-)
Nowe jednostki pomiarowe - chyba metry i tiptopki

sobota, marca 25, 2023

15 minutowe miasto - wygląda, że w nim mieszkam ;-)

Jest nowy wróg różnych zwolenników teorii spiskowych, miasto 15 minutowe. 
Opowiadają niestworzone rzeczy o gettach, o zakazie podroży i podobne.
Z tego co mówili na Architecture is a good idea wszystko zaczęło się od jakiegoś projektu w Oksfordzie zmierzającego do ograniczenia korków (przez pewną wersję idei ukochanej przez wielu w Krakowie by ludzie spoza miasta nie mogli wjeżdżać ;-)) z tym, że Oksford też chce być miastem 15 minutowym.

Ja nie o tym jednak jak powstała ta teoria spiskowa, a o tym, że jestem prawie pewien, że większość jej wyznawców bardzo chętnie zamieszkałoby w 15 minutowym mieście ;-)

Ja mieszkam w Krakowie, blisko Centrum, przy Wiśle na Nadwiślańskiej i de facto mieszkam w mieście 15 minutowym.
Sklepy, lekarzy, kino, teraz nawet pracę ;-) mam w odległości 15 minut spacerem, tak prawie Wawel mam w odległości ciut większej niż 15 minut ;-). Jeśli doliczę transport publiczny to Rynek i większość centrum Krakowa mam w odległości 15 minut od domu ;-)
Patrząc na ceny za m2 w mojej okolicy zgaduję, że ludziom się podoba idea mieszkania w takiej okolicy, czyli ludzie chcą mieszkać w 15 minutowym mięście ;-)
Dziwnie w dużych miastach blisko metra czy tramwajów ceny mieszkań od razu zaczynają rosnąć, bo ludzie lubią mieć wszędzie blisko.
A to jest właśnie ta idea tego strasznego 15 minutowego miasta, by wszędzie było blisko :-)



Podobne postybeta
No i jest problem natury logistyczno-temporalnej....
Różne rodzaje turystyki
Bilety w górę, koszty w dół?
Czasoprzesunięcie
Czemu mniej miejsc parkingowych to mniejsze korki w mieści?