https://www.gravatar.com/avatar/306d401b2a8c0efe0996fec60e0c90aa?s=240&d=mp

My coding journey

Disclaimer: it's just for fun

Programista w święta

Świąteczny problem

Kolejne Boże Narodzenie! Kolejne Święta! Urlop został już wprowadzony do korporacyjnej machiny akceptującej dni wolne, prezenty dla rodziny są już kupione (a nawet częściowo odebrane), zaczynamy ostatnie przygotowania!…

Zaraz, zaraz. Stop.

Spróbujmy się teraz zatrzymać, a przynajmniej trochę zwolnić. I pomyśleć nad tym, co robimy. A co takiego robimy? Wkręcamy się w szaleństwo (zakupowo - sprzątaniowo - dekoracyjno - jedzeniowe) zamiast zrobić to, co zrobić należy.

A należy, tak myślę, wykorzystać urlop świąteczny w taki sposób, aby odżyć, odbić się od zmęczenia i codzienności, odetchnąć głęboko, spojrzeć spokojnie w przyszłość, podjąć pewne decyzje, które być może zbyt długo odkładaliśmy. To doskonała okazja, aby się, że tak to ujmę, razem z Jezusem narodzić w stajence.

Chladni, Germain, Diffie-Hellman i TLS

Figury Chladniego

Co to jest?

Dowiedziałam się właśnie o istnieniu figur Chladniego (artykuł na angielskiej Wikipedii). To niezwykle interesujące zjawisko: figury takie pojawiają się wówczas, gdy fala dźwiękowa wprawia w drgania małe drobinki ciała stałeo rozsypane na większej powierzchi (oto filmilk demonstrujący to zjawisko). Pod wpływem drgań drobinki te układają się w takie interesujące wzory:

/posts/figury_chladniego/chladni.svg

(źródło: wikipedia)

Jak uniknąć switcha w Springu

W tym gościnnym wpisie Norbert Tusiński opisuje, w jaki sposób można zróżnicować zachowanie programu na podstawie zmiennej typu Enum. Intuicja podpowiada od razu, aby użyć instrukcji `switch` jendak Norbert pokazuje inne możliwe podejścia w kontekście frameworku SpringBoot.

Jeśli nie ThreadLocal to co? ScopedValue!

Co to jest ScopedValue?

ScopedValue to wartość, która może być widoczna i używana w metodach, a która nie została do nich przekazana jako ich parametr. Dotychczas taką rolę w języku Java pełniły zmienne ThreadLocal. Przyjrzyjmy się im odrobinę, żeby odświeżyć swoją wiedzę, a później popatrzymy, co nowego wnoszą ich nowoczesne zastępniki, czyli zmienne ScopedValue.

Co to jest zmienna ThreadLocal?

Zmienne ThreadLocal są deklarowane zazwyczaj jako prywante zmienne globalne (pola statyczne) i dają gwarancję, że wartość, którą z nich odczytujemy (metodą get()) to ta sama wartość, która została w nich zapisana (metodą set()) w tym samym wątku (lub ta, którą zwróciło wywołanie metody protected initialValue() zwracającej wartość inicjującą zmienną ThreaLocal).

Virtual Threads w Javie 21

Trochę historii

Wiecie, że w Javie możliwe było programowanie współbieżne już w wersji 1.0? Oczywiście, przy użyciu klasy Thread. Możliwość ta pojawiła się w 1996 (obchodziłam w tym roku osiemnaste urodziny!), jednak dość szybko się okazało, że nie jest ono wcale proste… Większe i bardziej złożone aplikacje potrzebowały lepszych narzędzi do okiełznania wątków; w bibliotece standardowej Javiy brakowało konstrukcji niezbędnych do modelowania pewnych wzorców programowania współbieżnego, a sam kod był zwykle mało czytelny i bardzo podatny na błędy.

Java 21 - jak wypróbować wersję early_access

Chcę wypróbować Javę 21!

To proste!

Możesz bardzo łatwo wypróbować nowości w javie 21, o których pisałam w poprzednim wpisie. Nie musisz nic instalować. Wystarczy:

  • ściągnąć i rozpakować archiwum;
  • wskazać na niego w zmiennej JAVA_HOME;
  • dodać podkatalog /bin do swojej zmiennej PATH.

Małymi kroczkami

Oto jak to zrobić po kolei (w systemie Ubuntu Linux):

Otwórz https://jdk.java.net/21/

Znajdziesz tu listę paczek do ściągnięcia: archiwum z jdk oraz plik z checksumą (sha256)

Co nowego w Javie 21?

Java 21

To jest prawdziwa bomba! Java 21 to już zupełnie inny język. Zmiany, które pojawią się w wydaniu planowanym na wrzesień 2023, można z grubsza podzielić na dwie kategorie:

Zmiany w języku i bibliotekach

Oto najważniejsze i - moim zdaniem - najciekawsze zmiany, jakie czekają nas w Javie 21. Nie są one rewolucyjne, ale sprawiają, że pisanie kodu - oraz, co jest nawet dużo ważniejsze, jego czytanie - stanie się dużo łatwiejsze.

Kobiety w IT

Notka: Wpis miał się pojawić w dniu 8 marca, ale tego dnia przyszło moje nowe biurko, którego instalacja zabrała trochę czasu. Oto trochę spóźniony wpis - z grafiką wygenerowaną przez [model AI] (https://deepai.org/) - i, jak zwykle, pisany trochę na kolanie…

Kobieta. 👩

Na sam dźwięk tego słowa uruchamia się w Twojej głowie szereg skojarzeń 🧠. Tych narzuconych Ci w toku Twojego wychowania, tych wessanych nieświadomie z kultury, w której żyjesz, a także tych, które wynikają z Twojej własnej historii życia 🐉 .

Drugie urodziny bloga

Dziś spisuję swoje przemyślenia dotyczące prowadzenia bloga. Z góry zastrzegam, że nie napiszę tu nic odkrywczego ani wartego Waszego czasu, więc ci z Was, którzy śledzą artukuły techniczne, będą musieli na kolejny techniczny wpis jeszcze trochę poczekać.

Java w VSCode

Java na szybko

Załóżmy, że potrzebujesz “na szybko” napisać jakiś program w Javie. Jakiego edytora użyjesz? Myślę, że większość Javowców, nawet jeśli są wyznania Vim-owego albo wyznawcami Kościoła Emacs, ucieknie się do uruchomienia grubego IDE takiego jak Eclipse, IntellijIdea lub - szczególnie ostatnimi laty - VSCode.

Przynam się, że ja też jakś czas temu zainstalowałam VSCode (zdaje się, że przy okazji nauki języka Go). Wciąż się docieramy (ja i VSCode) - mimo możliwości “podpięcia” sktótów klawiszowych z innych IDE wciąż staram się nauczyć sktótów właściwych dla VSCode i zrozumieć “filozofię” tego edytora.