https://code.visualstudio.com/docs/sourcecontrol/overview#_git-blame-information - Did you know, that you can see Git blame info inline without GitLens in VSCode?
git.blame.editorDecoration.enabled
Blog na temat programowania. Wszystkie materiały do nauki znajdziesz pod tagiem "materiały". Autor - Kamil Naja
https://code.visualstudio.com/docs/sourcecontrol/overview#_git-blame-information - Did you know, that you can see Git blame info inline without GitLens in VSCode?
git.blame.editorDecoration.enabled
"The passion to build has cooled, and the joy of construction has been forgotten." - Colonel Shikishima, Akira
Vibe Coding is writing code without understanding it, using LLMs. “Programmer” writes in natural language and tries to make a working program, without knowing the programming language. Bugs that appear are pasted into the cottage and count on it to fix them.
In my opinion, this makes as much sense as pasting random scripts from SO and hoping something will work 10 years ago :) The frustration is the same.
First - understanding and solid fundamentals.
Translated with DeepL.com (free version)
![]() |
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.
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:
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 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.
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.
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ą:
Nie będzie pasował natomiast do zdarzeń zależnych, jak na przykład opóźnienia pociągów.
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 |
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 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:
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.
Książka omawiająca temat od podstaw, dostępna za darmo - https://hastie.su.domains/ElemStatLearn/
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
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.
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.
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 💎
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.
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
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.
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ł:
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.
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.