czwartek, 6 lutego 2025

Mock Service Worker - prosty spos贸b na mockowanie danych

 Jaki艣 czas temu napisa艂em dla mojej poprzedniej firmy artyku艂 o tym, jak mo偶na skutecznie integrowa膰 si臋 z backendem. Na blogu Angular Architects pojawi艂 si臋 te偶 wpis, kt贸ry potwierdzi艂 moj膮 tez臋, 偶e dobrze jest si臋 integrowa膰 z mockowym backendem. (Nie ma to jak cherry picking pod tez臋 :)

czwartek, 30 stycznia 2025

Lista LLM-贸w bo偶ych - kalendarium

Obraz wygenerowany przez Qwen

 

 

 

 

 

 

 

 

 

 

Po raz pierwszy us艂ysza艂em o LLM gdy pojawi艂 si臋 Chat GPT. M贸j brat zacz膮艂 go entuzjastycznie u偶ywa膰 na studiach i jako艣 niech臋tnie zacz膮艂em go u偶ywa膰. Pami臋tam, 偶e Chat GPT mia艂 du偶e problemy z logowaniem u偶ytkownika (wylogowywa艂 go losowo po jakim艣 czasie) i z wydajno艣ci膮. Cz臋sto zdarza艂y si臋 problemy z odpowiedziami - chat my艣la艂 my艣la艂 i wyrzuca艂 b艂膮d.

poniedzia艂ek, 13 stycznia 2025

Proces Markowa (艂a艅cuch Markowa)

Proces Markowa jest szczeg贸lnym przypadkiem procesu stochastycznego. Jego cech膮 charakterystyczn膮 jest to, 偶e prawdopodobie艅stwo kolejnego zdarzenia zale偶y jedynie od wyniku poprzedniego zdarzenia, a nie od ca艂ej historii procesu. Przesz艂e stany nie maj膮 wp艂ywu na kolejne wyniki procesu. 

艁a艅cuchy Markowa wykorzystuje si臋 w:

  • Modelowaniu r贸偶norakich system贸w, zmieniaj膮cych stan w spos贸b losowy
  • Prognozowaniu
  • Niekt贸rych algorytmach  

Przyk艂adem procesu Markowa mo偶e by膰 random walker. W tym algorytmie po ka偶dym kroku losujemy kierunek przemieszczania si臋 naszej krzywej, bior膮c pod uwag臋 jedynie punkt, w kt贸rym obecnie si臋 znajduje jej koniec.

Andriej Markow by艂 rosyjskim matematykiem 偶yj膮cym w latach 1856 - 1922, badaj膮cym teori臋 prawdopodobie艅stwa.

Proces stochastyczny

Proces stochastyczny to taki proces, w kt贸rym opisujemy zbi贸r zmiennych losowych na bazie jakiego艣 wymiaru (zbioru indeks贸w), jakim zwykle jest czas. Przyk艂adem procesu stochastycznego mo偶e by膰 na przyk艂ad zbi贸r wypisanych kolejnych wynik贸w rzutu kostk膮 czy kart wyci膮gni臋tych z talii. Obydwa te zdarzenia s膮 losowe.

Rozk艂ad jednostajny ci膮g艂y (Uniform Distribution)

Jest u偶ywany do generowania randomowych liczb, z kt贸rych ka偶da powinna mie膰 takie same prawdopodobie艅stwo wyst膮pienia. Standardowym przyk艂adem jest rzut kostk膮 przyjmuj膮cy warto艣ci od 1 do 6, czy rzut monet膮 daj膮cy wynik orze艂 albo reszka. 

W tym rozk艂adzie, nie mo偶na mie膰 warto艣ci po艣rednich. Rzut ko艣ci膮 nie da nam wyniku 2.5.

sobota, 11 stycznia 2025

Process Poissona

 Process Poissona jest powi膮zany z rozk艂adem Poissona. Badaj膮c go zak艂adamy, 偶e 艣redni czas pomi臋dzy zdarzeniami jest znany, ale dok艂adny czas pomi臋dzy nimi r贸偶ni si臋, nie jest taki sam. Zdarzenia nie zachodz膮 na raz, ale s膮 od siebie niezale偶ne. Sam proces przedstawia seri臋 takich zdarze艅, a dok艂adniej, model wyst臋powania tych zdarze艅 w czasie.

Wykorzystywany jest w wielu dziedzinach nauki i biznesu, w kt贸rych bada si臋 zdarzenia niezale偶ne, wyst臋puj膮ce z podobn膮 cz臋stotliwo艣ci膮:

  • Przewidywanie liczby u偶ytkownik贸w na stronie WWW
  • Przewidywanie ilo艣ci zabookowanych pokoj贸w w hotelu
  • Modelowanie sprzeda偶y produktu
     

Nie b臋dzie pasowa艂 natomiast do zdarze艅 zale偶nych, jak na przyk艂ad op贸藕nienia poci膮g贸w.

Rozk艂ad wyk艂adniczy (exponential distribution)

Ostatnio pisa艂em o Rozk艂adzie Poissona, czyli takim rozk艂adzie, w kt贸rym zdarzenia zachodz膮 ze sta艂膮 cz臋stotliwo艣ci膮 i s膮 niezale偶ne od siebie.

W rozk艂adzie wyk艂adniczym modelujemy czas oczekiwania na kolejne zdarzenie, przyk艂adowo, ile minut minie, mi臋dzy kolejnymi wizytami ptaka w naszym ogrodzie. 

Na podstawie ksi膮zki J. Starmera, na osi x - czas
Na ch艂opski rozum - je艣li jakie艣 zjawisko wyst臋puje co jaki艣 czas regularnie, to im kr贸tszy czas oczekiwania, tym wi臋ksze prawdopodobie艅stwo, 偶e dane zdarzenie wyst膮pi. Przyk艂adowo, je艣li zbadamy awarie oprogramowania, to najcz臋艣ciej dziej膮 si臋 one zaraz po wgraniu zmian, a nast臋pnie jest ich coraz mniej.


czwartek, 9 stycznia 2025

Rozk艂ad Poissona, prawo ma艂ych liczb

Rozk艂ad Poissona nie ma nic wsp贸lnego z trucizn膮, zosta艂 opracowany przez Simeona Denisa Poissona, francuskiego matematyka 偶yj膮cego od 1781 do 1840 roku we Francji.

Opisuje on (rozk艂ad), 偶e dane zdarzenie wyst膮pi okre艣lon膮 ilo艣膰 razy, bior膮c pod uwag臋 艣redni膮 ilo艣膰 danych zdarze艅 w czasie lub przestrzeni. Przyk艂adowo - mo偶emy obliczy膰, ile razy ptaki usi膮d膮 na naszym p艂ocie w ci膮gu godziny, ilu klient贸w odwiedzi sklep od 12 do 15 czy ile request贸w obs艂u偶y backend naszej strony.

Zdarzenia brane pod uwag臋 w rozk艂adzie Poissona powinny by膰 niezale偶ne od siebie, czyli nie ma znaczenia, jaki czas up艂yn膮 od ostatniego zdarzenia. To nie 艂apanie ryb, gdzie pluskanie po wyci膮gni臋ciu du偶ej sztuki, odstraszy pozosta艂e ryby 饟啙 饟啛 饟啚 na kilka minut.

Rozk艂ad dwumianowy, binomial distribution (Rozk艂ad Bernouliego)

Rozk艂ad dwumianowy dotyczy prawdopodobie艅stwa dyskretnego, czyli takiego, w kt贸rym zmienna przyjmuje sko艅czone lub okre艣lone warto艣ci. Przyk艂adem mo偶e by膰 rzut monet膮 lub kostk膮 do gry. W rozk艂adzie dwumianowym mamy takie parametry, jak:

  • Liczba pr贸b n
  • Prawdopodobie艅stwo sukcesu w ka偶dej z pr贸b p
  • Liczba sukces贸w - k

wtorek, 7 stycznia 2025

Ksi膮偶ki na temat ML kt贸re polecam

The StatQuest Illustrated Guide to ML - Josh Starmer

Ksi膮偶ka Josha Starmera ze 艣wietnego kana艂u StatQuest. Mocno w stylu ksi膮偶ek HeadFirst. Dobrze t艂umaczy podstawowe zagadnienia, tak偶e te zwi膮zane ze statystyk膮. 0 kodu.


Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow - Aurelien Geron

Nieco bardziej powa偶na ksi膮偶ka na temat ML

Deep Learning with Python - Francois Chollet

Ksi膮偶ka autora biblioteki Keras

The Elements of Statistical Learning
Data Mining, Inference, and Prediction

Ksi膮偶ka omawiaj膮ca temat od podstaw, dost臋pna za darmo - https://hastie.su.domains/ElemStatLearn/

艣roda, 1 stycznia 2025

W jaki spos贸b filmy z YT mieszaj膮 Ci w g艂owie

Jaki艣 czas temu zauwa偶y艂em powa偶ny problem, zwi膮zany z ogl膮daniem film贸w na YT. Ot贸偶 odnosz臋 wra偶enie, 偶e wi臋kszo艣膰 tw贸rc贸w tworzy filmy nie z w艂asnego przekonania, ale po to, by nabija膰 sobie wej艣cia (0 zaskoczenia). Wprowadza to dezinformacj臋 i prowadzi w艣r贸d widz贸w do niew艂a艣ciwych wniosk贸w i szkodliwych zachowa艅.

Przyk艂adowe tematy

  • Odstawianie kawy
  • Minimalizm
  • Ci膮g艂a migracja z ekosystemu Apple na inne i w drug膮 stron臋
  • Mindfulness
  • Wstawanie o 5 rano 
  • Deep work / Eat that Frog / GTD
  • Kolejny m膮dry trend z USA

wtorek, 31 grudnia 2024

Programistyczne podsumowanie roku 2024

Podsumowanie roku 2024

Nauka j臋zyk贸w obcych

W 2024 kontynuowa艂em nauk臋 na Duolingo, wbijaj膮c kolejny rok bez przerw w j臋zyku niemieckim po angielsku. Przerobi艂em ca艂y angielski zaawansowany w BeeSpeaker i aktualne szukam aplikacji do nauki m贸wienia po angielsku.

Programowanie

W marcu otrzyma艂em do艣膰 nieprzyjemn膮 informacj臋 o tym, 偶e projekt w kt贸rym uczestnicz臋, rezygnuje ze wszystkich os贸b z mojej aktualnej kontraktorni. Poskutkowa艂o to konieczno艣ci膮 szukania pracy, co zaj臋艂o mi oko艂o 2 miesi膮ce. Po raz pierwszy zauwa偶y艂em wtedy, 偶e znalezienie pracy staje si臋 do艣膰 trudne - rekrutacje sta艂y si臋 wymagaj膮ce. Powt贸rzy艂em wtedy Jav臋, Angulara, JS i TS. Na szcz臋艣cie uda艂o si臋 znale藕膰 mi do艣膰 interesuj膮cy projekt, w kt贸rym jestem do tej pory.

艣roda, 18 grudnia 2024

About pressure

Presja tworzy diamenty i rozsadza rury

Za du偶o presji zmienia diamenty w py艂 馃拵


Pressure creates diamonds and bursts pipes 

Too much pressure turns diamonds into dust 馃拵

艣roda, 11 grudnia 2024

Thoughts December

Programming with LLM without knowing what your code is doing, is like playing piano with illuminated keys. You will achieve desired result, but don't gain knowledge, and your path will be longer.

Programowanie z u偶yciem LLM bez wiedzy co tw贸j kod robi, jest jak granie na pianinie z pod艣wietlanymi klawiszami. Osi膮gniesz sw贸j rezultat, ale nic si臋 nie nauczysz i wyd艂u偶ysz tylko drogi.

pi膮tek, 6 grudnia 2024

Thoughts October

Learning is about moving from I have no idea what x is, to saying that through experience with X, I can solve any problem in it/using it

Nauka polega na przej艣ciu od Nie mam poj臋cia czym jest x, do stwierdzenia 偶e dzi臋ki do艣wiadczeniu z X, potrafi臋 rozwi膮za膰 w nim / u偶ywaj膮c jego ka偶dy problem


wtorek, 19 listopada 2024

Thoughts November

Writing every day one letter of book, doesn't give you whole book after a year. Complexity grows with the scale, without training you might not be able to handle.

Pisz膮c codziennie jedn膮 stron臋 ksi膮偶ki, nie b臋dziesz mia艂 ca艂ej ksi膮偶ki po roku. Z艂o偶ono艣膰 ro艣nie wraz ze skal膮, a bez odpowiedniego treningu mo偶esz nie mie膰 mo偶liwo艣ci ogarni臋cia ca艂o艣ci.

wtorek, 24 wrze艣nia 2024

Turborepo - zarz膮dzanie monorepo

Ostatnio w jednym z projekt贸w u偶ywam https://turbo.build/. Turbo to narz臋dzie, kt贸re pozwala na 艂atwe zarz膮dzanie projektem typu monorepo w JS i TS. 

Cz臋stym problemem jest trudno艣膰 w odpalaniu kilku projektu na raz. Dzi臋ki Turbo, mo偶na zdefiniowa膰 projekty i odpala膰 je z jednego miejsca, za pomoc膮 wsp贸lnego polecenia Turbo run. Wykona ono na przyk艂ad wszystkie zadania build lub dev z package json. Dodatkowo, je艣li baza kodu si臋 nie zmieni艂a, wynik zostanie zwr贸cony z cache. Mo偶na to skonfigurowa膰 tak偶e po stronie serwera.

Turbo pozwala na 艂atwe wyodr臋bnianie sp贸jnych aplikacji i bibliotek. Przyk艂adowo, mo偶esz wydzieli膰 sobie aplikacj臋 webow膮 oraz api i wrzuci膰 je do folderu apps. Nast臋pnie, mo偶esz utworzy膰 folder packages, w kt贸rym b臋dziesz w p艂askiej strukturze przechowywa艂:

  • modele (interfaces)
  • konfiguracje eslinta
  • serwisy HTTP dla Angulara (je艣li masz tak膮 fantazj臋)
  • reu偶ywalne komponenty

Dzi臋ki temu, mo偶na 艂atwo potem doda膰 jeszcze inny rodzaj aplikacji, kt贸ry skorzysta ze wsp贸艂dzielonej bazy kodu. Jest to 艣wietnie rozwi膮zanie w pracy, gdy zwykle tworzymy wi臋cej ni偶 jedn膮 aplikacj臋. Spotka艂em si臋 z sytuacjami, kiedy dla kilku takich samych aplikacji musimy osobno instalowa膰 eslint czy Jest i nast臋pnie wielokrotnie dodawa膰 te same konfiguracje. Turbo znacznie upraszcza ten proces.

Ka偶da aplikacja jest osobn膮 paczk膮 z plikiem package.json, kt贸r膮 mo偶na zainstalowa膰 jak standardow膮, wersjonowan膮 paczk臋 npm w obr臋bie repozytorium.

Minusem Turbo jest do艣膰 trudna konfiguracja udost臋pniania plik贸w z jednej paczki do drugiej. W teorii jest to proste, w praktyce napotka艂em na wiele mo偶liwych ustawie艅 (z pliku TS, z package jsona albo ze skompilowanych plik贸w TS). 

Podsumowuj膮c, Turbo zapewnia sp贸jn膮 obs艂ug臋 monorepo i zach臋ca nas do dzielenia kodu na reu偶ywalne paczki.  Z mojej perspektywy jest prostsze ni偶 Nx, jednocze艣nie oferuj膮c nieco mniej mo偶liwo艣ci.


poniedzia艂ek, 16 wrze艣nia 2024

Visual Timer - Yunbaoit

 Pomodoro to najgorszy spos贸b na zarz膮dzanie czasem, ale do tej pory nie wynaleziono nic lepszego. Odk膮d pracuj臋 na swoim, przetestowa艂em mn贸stwo aplikacji tego typu. Ka偶da mia艂a jakie艣 wady. Sprawdza艂em te偶 fizyczne urz膮dzenia. Nakr臋cany pomidor kuchenny jest ma艂o dok艂adny i bardzo g艂o艣ny, nie ma opcji konfiguracji. Zegarki z odliczaniem stworzone s膮 raczej do innych cel贸w ni偶 odliczanie pomodoro, brakuje im mi臋dzy innymi czytelno艣ci w gorszym 艣wietle.

Ostatnio testowa艂em aplikacj臋 od Time Timer

https://www.timetimer.com/collections/applications/products/time-timer-ios-app

kt贸ra sprawdza si臋 bardzo fajnie. Podoba mi si臋 idea wizualnego przedstawienia up艂ywu czasu. Aplikacja nie 偶adnych bajer贸w, typu 艣ledzenie zrobionych pomidor贸w, co w zasadzie jest na plus. Dzia艂a te偶 w trybie pe艂noekranowym. 

Nie jestem jednak fanem ci膮g艂ego u偶ywania telefonu przy pracy, a jeszcze bardziej, wydawania 35 funt贸w na budzik z czerwonym ringiem ze strony 

https://www.timetimer.com/products/time-timer-mod-30-minute aby mie膰 to samo w formie fizycznej.

Zerkn膮艂em na alliexpress gdzie znalaz艂em podobny timer marki Yunbaoit w wielokrotnie ni偶szej cenie, tzn oko艂o 25 pln. Obecnie troch臋 podro偶a艂. Nie brakuje mu opcji. 

  • Mo偶na nim odlicza膰 czas do godziny
  • Posiada czas pikania 3 i 30 sekund
  • Ma 3 ustawienia g艂o艣no艣ci, mute, ciszej i g艂o艣niej
  • Czujnik baterii 
  • Pod艣wietlenie do pracy w nocy
Gdy zegarek jest wyciszony, na koniec czasu mruga pod艣wietleniem. Ca艂o艣膰 przypomina troch臋 solidniejszy budzik z kiosku, opakowany dodatkowo w gumow膮 obudow臋. Testy trwaj膮, pierwsze wra偶enie - jak za tak nisk膮 cen臋, bardzo pozytywne.

sobota, 7 wrze艣nia 2024

Time Timer

 I'm testing Time Timer https://www.timetimer.com/ app for Android, looks very promising. Simple way of visually tracking time.

czwartek, 15 sierpnia 2024

VSCode - podejrzyj wszystkie zmiany

Source control w VSCode dzia艂a艂o dla mnie "wystarczaj膮co dobrze", by m贸c pracowa膰 na nim przez ca艂y czas. Brakowa艂o mi jednak jednej opcji - przegl膮dania wszystkich commit贸w w jednym widoku. Je艣li chcieli艣my podejrze膰 nasze zmiany, musieli艣my przeklika膰 si臋 przez wszystkie pliki.

Ostatnio zauwa偶y艂em jednak 艣wietn膮 opcj臋 "View Changes"


Po jej wybraniu widzimy wszystkie zmiany w formie przewijanej, co przy艣piesza prac臋. 

niedziela, 30 czerwca 2024

Praca w ciszy

 Standardowy stan w pracy to:

  • W艂膮czony Spotify
  • Przegl膮danie Facebooka
  • Zerkanie na nowo艣ci na yt
  • Oczywi艣cie w mi臋dzyczasie dzwoni kurier / mama / dodaj dowolne
Czasem wydaje mi si臋, 偶e wi臋cej czasu sp臋dzamy mi臋dzy prze艂膮czaniem si臋 mi臋dzy tymi wszystkimi ciekawostkami, ni偶 na pracy. Metoda pomodoro ma nam pom贸c skupi膰 si臋 przynajmniej na te 25 minut, ale w rzeczywisto艣ci staje si臋 dodatkowym 藕r贸d艂em rozprosze艅. Pono膰 aby wr贸ci膰 do pe艂nego skupienia po przerwanej pracy, potrzeba a偶 20 minut.

wtorek, 4 czerwca 2024

Rekrutacja 2024, czyli jak szuka艂em pracy

Na koniec marca 2024 m贸j team dosta艂 informacj臋, 偶e rezygnuj膮 z kontraktor贸w z Polski. Pierwsza reakcja to oczywi艣cie ... l臋k o los projektu, poniewa偶 zosta艂 on powierzony w r臋ce nieznanych os贸b.  Druga - ustawiam na Linkedinie status Ready to work i szukam nowej pracy. Okaza艂o si臋 to trudniejsze ni偶 my艣la艂em, ale wykonalne.

Wys艂a艂em oko艂o 200 cv, przeprowadzi艂em mn贸stwo rozm贸w HR i kilka rozm贸w rekrutacyjnych. Poszukiwania trwa艂y do czerwca, kiedy to uda艂o mi si臋 znale藕膰 ofert臋 prawie tak samo dobr膮, jak poprzednie stanowisko.

Moje spostrze偶enia

  1. Bez kilku lat do艣wiadczenia w konkretnych technologiach trudno jest przej艣膰 nawet pierwszy etap rekrutacji. Na starcie odpadniemy przegrywaj膮c z bardziej dopasowanymi osobami.
  2. Topowe stanowiska wymagaj膮 od kandydata znacznie wi臋cej, ni偶 tylko kodowanie w jednym frameworku. Warto na przyk艂ad mie膰 do艣wiadczenie trenerskie lub leaderskie, albo pracowa膰 jako full-stack.
  3. Firmy coraz cz臋艣ciej zwracaj膮 uwag臋 na wykszta艂cenie
  4. Bez dobrej znajomo艣ci angielskiego bardzo szybko uderzymy w sufit zarobk贸w i to jest czynnik, kt贸ry ogranicza nas najbardziej.
  5. Konieczne jest zbieranie wszystkich pyta艅 rekrutacyjnych i wykuwanie ich na blach臋. Najlepiej jest uczy膰 si臋 z b艂臋d贸w pope艂nianych przez inne osoby i aktywnie szuka膰 pyta艅 rekrutacyjnych w sieci. B臋dzie to okazja do poznania tych temat贸w, na kt贸re nigdy nie mieli艣my czasu. Praca programisty w du偶ej mierze przypomina prac臋 naukowca, polega na wertowaniu materia艂贸w i szukaniu czego艣, co by膰 mo偶e kiedy艣 si臋 nam przyda.
  6. Cz臋stym wymaganiem jest praca przynajmniej jeden raz w tygodniu z biura. Moim zdaniem, jest to bardzo na minus.